From: Luis Chamberlain Date: Fri, 15 Oct 2021 23:30:21 +0000 (-0700) Subject: scsi: sr: Add error handling support for add_disk() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=e9d658c2175b95a8f091b12ddefb271683aeacd9;p=linux.git scsi: sr: Add error handling support for add_disk() 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(). Link: https://lore.kernel.org/r/20211015233028.2167651-3-mcgrof@kernel.org Reviewed-by: Christoph Hellwig Acked-by: Martin K. Petersen Signed-off-by: Luis Chamberlain Signed-off-by: Martin K. Petersen --- diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 8b17b35283aa5..d769057b25a0f 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -727,7 +727,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);