On 03/30/2017 08:17 PM, Bart Van Assche wrote: > scsi_device_get() can fail. Hence check its return value. > > Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx> > Cc: Boaz Harrosh <bharrosh@xxxxxxxxxxx> Cool thanks ACK-by: Boaz Harrosh <ooo@xxxxxxxxxxxxxxx> > --- > drivers/scsi/osd/osd_uld.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c > index e0ce5d2fd14d..1dea4244dd0c 100644 > --- a/drivers/scsi/osd/osd_uld.c > +++ b/drivers/scsi/osd/osd_uld.c > @@ -464,14 +464,15 @@ static int osd_probe(struct device *dev) > /* hold one more reference to the scsi_device that will get released > * in __release, in case a logout is happening while fs is mounted > */ > - scsi_device_get(scsi_device); > + if (scsi_device_get(scsi_device)) > + goto err_put_disk; > osd_dev_init(&oud->od, scsi_device); > > /* Detect the OSD Version */ > error = __detect_osd(oud); > if (error) { > OSD_ERR("osd detection failed, non-compatible OSD device\n"); > - goto err_put_disk; > + goto err_put_sdev; > } > > /* init the char-device for communication with user-mode */ > @@ -508,8 +509,9 @@ static int osd_probe(struct device *dev) > > err_put_cdev: > cdev_del(&oud->cdev); > -err_put_disk: > +err_put_sdev: > scsi_device_put(scsi_device); > +err_put_disk: > put_disk(disk); > err_free_osd: > dev_set_drvdata(dev, NULL); >