Message ID | 20211015233028.2167651-3-mcgrof@kernel.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | Mike Snitzer |
Headers | show |
Series | block: reviewed add_disk() error handling set | expand |
Luis, > We never checked for errors on add_disk() as this function returned > void. Now that this is fixed, use the shiny new error handling. > > Just put the cdrom kref and have the unwinding be done by > sr_kref_release(). Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 115f7ef7a5de..4e5515848fa6 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -728,7 +728,12 @@ static int sr_probe(struct device *dev) dev_set_drvdata(dev, cd); disk->flags |= GENHD_FL_REMOVABLE; sr_revalidate_disk(cd); - device_add_disk(&sdev->sdev_gendev, disk, NULL); + + error = device_add_disk(&sdev->sdev_gendev, disk, NULL); + if (error) { + kref_put(&cd->kref, sr_kref_release); + goto fail; + } sdev_printk(KERN_DEBUG, sdev, "Attached scsi CD-ROM %s\n", cd->cdi.name);