Skip to contentSkip to conversation

sr: fix error handling in module_init

PATCH In review Akinobu Mita 2 participants 2 messages Jun 25, 2007 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sr: fix error handling in module_init

Sweep registered blkdev when scsi_register_driver has failed.

drivers/scsi/sr.c +5 -1
Index: 2.6-rc/drivers/scsi/sr.c
===================================================================
@@ -885,7 +885,11 @@ static int __init init_sr(void)
 	rc = register_blkdev(SCSI_CDROM_MAJOR, "sr");
 	if (rc)
 		return rc;
-	return scsi_register_driver(&sr_template.gendrv);
+	rc = scsi_register_driver(&sr_template.gendrv);
+	if (rc)
+		unregister_blkdev(SCSI_CDROM_MAJOR, "sr");
+
+	return rc;
 }
 
 static void __exit exit_sr(void)
#1 lore raw
Quoted 10 lines · Akinobu Mita

Sweep registered blkdev when scsi_register_driver has failed.

Index: 2.6-rc/drivers/scsi/sr.c
===================================================================

drivers/scsi/sr.c static int __init init_sr(void) · line 892

Quoted 9 lines
drivers/scsi/sr.c +5 -1
@@ -885,7 +885,11 @@ static int __init init_sr(void)
 	rc = register_blkdev(SCSI_CDROM_MAJOR, "sr");
 	if (rc)
 		return rc;
-	return scsi_register_driver(&sr_template.gendrv);
+	rc = scsi_register_driver(&sr_template.gendrv);
+	if (rc)
+		unregister_blkdev(SCSI_CDROM_MAJOR, "sr");
+
+	return rc;

Looks good.