[SCSI] ide-scsi: Close narrow race in release
authorMatthew Wilcox <matthew@wil.cx>
Wed, 15 Aug 2007 18:57:01 +0000 (12:57 -0600)
committerJames Bottomley <jejb@mulgrave.localdomain>
Fri, 12 Oct 2007 18:51:14 +0000 (14:51 -0400)
We were releasing the block devices before removing the host, so commands
could still be coming in which would cause a panic.  Just remove the
host before releasing the block devices to close this race.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/ide-scsi.c

index 3b55a6c10b6bace2e6367813bdd9478ac589e368..d81bb076a15a887b062f8325061cb2f9d46b6430 100644 (file)
@@ -671,6 +671,7 @@ static void ide_scsi_remove(ide_drive_t *drive)
        struct ide_scsi_obj *scsi = scsihost_to_idescsi(scsihost);
        struct gendisk *g = scsi->disk;
 
+       scsi_remove_host(scsihost);
        ide_proc_unregister_driver(drive, scsi->driver);
 
        ide_unregister_region(g);
@@ -679,7 +680,6 @@ static void ide_scsi_remove(ide_drive_t *drive)
        g->private_data = NULL;
        put_disk(g);
 
-       scsi_remove_host(scsihost);
        ide_scsi_put(scsi);
 }