FAILED: patch "[PATCH] Revert "scsi: Fix a bdi reregistration race"" failed to apply to 3.10-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 3.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
e619e6cbecb7fe97a924d625e848605333457b13Mon Sep 17 00:00:00 2001
From: Bart Van Assche <[email protected]>
Date: Fri, 20 Nov 2015 14:11:01 -0800
Subject: [PATCH] Revert "scsi: Fix a bdi reregistration race"
The SCSI sd driver probes SCSI devices asynchronously. The sd_remove() function, called indirectly by device_del(), waits until asynchronous probing has finished. Since the block layer queue must only be cleaned up after probing has finished, device_del() has to be called before blk_cleanup_queue(). Hence revert commit bf2cf3baa20b.
drivers/scsi/scsi_sysfs.c +3 -11
@@ -1110,7 +1110,9 @@ void __scsi_remove_device(struct scsi_device *sdev)device_unregister (&sdev->sdev_dev);transport_remove_device (dev);scsi_dh_remove_device (sdev); - } +device_del (dev); + }else +put_device (&sdev->sdev_dev);/* * Stop accepting new requests and wait until all queuecommand() and
@@ -1121,16 +1123,6 @@ void __scsi_remove_device(struct scsi_device *sdev)blk_cleanup_queue (sdev->request_queue);cancel_work_sync (&sdev->requeue_work); -/* -* Remove the device after blk_cleanup_queue() has been called such -* a possible bdi_register() call with the same name occurs after -* blk_cleanup_queue() has called bdi_destroy(). -*/ -if (sdev->is_visible) -device_del (dev); -else -put_device (&sdev->sdev_dev); -if (sdev->host->hostt->slave_destroy) sdev->host->hostt->slave_destroy (sdev);transport_destroy_device (dev);