All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] scsi: serialize ->rescan against ->remove
@ 2015-01-28 23:00 Christoph Hellwig
  2015-01-28 23:00 ` [PATCH 2/3] sd: don't grab a device references from driver methods Christoph Hellwig
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Christoph Hellwig @ 2015-01-28 23:00 UTC (permalink / raw)
  To: linux-scsi; +Cc: Bart Van Assche, James Bottomley, Alan Stern

Lock the device embedded in the scsi_device to protect against
concurrent calls to ->remove.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/scsi/scsi_scan.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 983aed1..523faee 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1593,16 +1593,15 @@ EXPORT_SYMBOL(scsi_add_device);
 
 void scsi_rescan_device(struct device *dev)
 {
-	if (!dev->driver)
-		return;
-
-	if (try_module_get(dev->driver->owner)) {
+	device_lock(dev);
+	if (dev->driver && try_module_get(dev->driver->owner)) {
 		struct scsi_driver *drv = to_scsi_driver(dev->driver);
 
 		if (drv->rescan)
 			drv->rescan(dev);
 		module_put(dev->driver->owner);
 	}
+	device_unlock(dev);
 }
 EXPORT_SYMBOL(scsi_rescan_device);
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread
* [PATCH 1/3] scsi: serialize ->rescan against ->remove
@ 2015-02-02 13:01 Christoph Hellwig
  2015-03-05 13:33 ` Christoph Hellwig
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Christoph Hellwig @ 2015-02-02 13:01 UTC (permalink / raw)
  To: linux-scsi; +Cc: Bart Van Assche, James Bottomley, Alan Stern

Lock the device embedded in the scsi_device to protect against
concurrent calls to ->remove.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
---
 drivers/scsi/scsi_scan.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 983aed1..523faee 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1593,16 +1593,15 @@ EXPORT_SYMBOL(scsi_add_device);
 
 void scsi_rescan_device(struct device *dev)
 {
-	if (!dev->driver)
-		return;
-
-	if (try_module_get(dev->driver->owner)) {
+	device_lock(dev);
+	if (dev->driver && try_module_get(dev->driver->owner)) {
 		struct scsi_driver *drv = to_scsi_driver(dev->driver);
 
 		if (drv->rescan)
 			drv->rescan(dev);
 		module_put(dev->driver->owner);
 	}
+	device_unlock(dev);
 }
 EXPORT_SYMBOL(scsi_rescan_device);
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-03-16 17:29 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-28 23:00 [PATCH 1/3] scsi: serialize ->rescan against ->remove Christoph Hellwig
2015-01-28 23:00 ` [PATCH 2/3] sd: don't grab a device references from driver methods Christoph Hellwig
2015-01-28 23:00 ` [PATCH 3/3] scsi: proper state checking and module refcount handling in scsi_device_get Christoph Hellwig
2015-01-29 14:46   ` James Bottomley
2015-01-29 20:09 ` [PATCH 1/3] scsi: serialize ->rescan against ->remove Alan Stern
2015-01-29 23:11 ` Paolo Bonzini
2015-01-30  1:08   ` Fam Zheng
2015-01-30  9:46     ` Paolo Bonzini
2015-02-02 12:59       ` Christoph Hellwig
2015-02-02 13:14         ` Paolo Bonzini
2015-02-02 13:01 Christoph Hellwig
2015-03-05 13:33 ` Christoph Hellwig
2015-03-05 13:37   ` Paolo Bonzini
2015-03-16 17:29     ` Paolo Bonzini
2015-03-05 13:36 ` Paolo Bonzini
2015-03-10 16:20 ` Hannes Reinecke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.