diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2007-06-25 11:39:33 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.localdomain> | 2007-07-14 19:54:34 -0400 |
commit | da3962fe63eae4f490356cb54e4700eac752541b (patch) | |
tree | fe59db896d263abe71f63d90a0e0fd1458edf1c0 /drivers | |
parent | a57850379e389829a2fc569733b41da3d52bf366 (diff) |
[SCSI] sr: fix error handling in module_init
Sweep registered blkdev when scsi_register_driver has failed.
Cc: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/sr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index f9a52af7f5b4..5143c8990845 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
@@ -885,7 +885,11 @@ static int __init init_sr(void) | |||
885 | rc = register_blkdev(SCSI_CDROM_MAJOR, "sr"); | 885 | rc = register_blkdev(SCSI_CDROM_MAJOR, "sr"); |
886 | if (rc) | 886 | if (rc) |
887 | return rc; | 887 | return rc; |
888 | return scsi_register_driver(&sr_template.gendrv); | 888 | rc = scsi_register_driver(&sr_template.gendrv); |
889 | if (rc) | ||
890 | unregister_blkdev(SCSI_CDROM_MAJOR, "sr"); | ||
891 | |||
892 | return rc; | ||
889 | } | 893 | } |
890 | 894 | ||
891 | static void __exit exit_sr(void) | 895 | static void __exit exit_sr(void) |