[SCSI] SCSI sd: fix module init/exit error handling
authorJeff Garzik <jeff@garzik.org>
Wed, 4 Oct 2006 09:32:54 +0000 (05:32 -0400)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Wed, 4 Oct 2006 18:14:16 +0000 (13:14 -0500)
commit5e4009ba3d5af40f5615fdb4304cc4a9947cca0a
treea6dd31cd9f6dfa1c85b3b5fefcded5b74d0ac2f5
parent37e0333c68ca9cbddfc0108e1889556287563df0
[SCSI] SCSI sd: fix module init/exit error handling

- Properly handle and unwind errors in init_sd().  Fixes leaks on error,
  if class_register() or scsi_register_driver() failed.

- Ensure that exit_sd() execution order is the perfect inverse of
  initialization order.

FIXME:  If some-but-not-all register_blkdev() calls fail, we wind up
calling unregister_blkdev() for block devices we did not register.
This was a pre-existing bug.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/sd.c