Revert "[SCSI] fix bsg queue oops with iscsi logout"
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 26 Mar 2008 16:09:19 +0000 (09:09 -0700)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 26 Mar 2008 16:09:19 +0000 (09:09 -0700)
This reverts commit 4b6f5b3a993cbe34b4280f252bccc76967c185c8.

bsg takes a reference to the underlying generic device, so it's
impossible to unregister bsg in the device release routine.

Acked-by: FUJITA Tomonori <tomof@acm.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/scsi_sysfs.c

index b9b09a70458435dcc34544555e759cb6b8a0e300..ed83cdb6e67dfbdb5c829238c91ed861b124a426 100644 (file)
@@ -294,7 +294,6 @@ static void scsi_device_dev_release_usercontext(struct work_struct *work)
        }
 
        if (sdev->request_queue) {
-               bsg_unregister_queue(sdev->request_queue);
                sdev->request_queue->queuedata = NULL;
                /* user context needed to free queue */
                scsi_free_queue(sdev->request_queue);
@@ -858,6 +857,7 @@ void __scsi_remove_device(struct scsi_device *sdev)
        if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)
                return;
 
+       bsg_unregister_queue(sdev->request_queue);
        class_device_unregister(&sdev->sdev_classdev);
        transport_remove_device(dev);
        device_del(dev);