Commit e9d658c2 authored by Luis Chamberlain's avatar Luis Chamberlain Committed by Martin K. Petersen
Browse files

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: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 2a7a891f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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);