Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e27829dc authored by Christoph Hellwig's avatar Christoph Hellwig Committed by James Bottomley
Browse files

scsi: serialize ->rescan against ->remove



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

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 4e5a800c
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -1570,16 +1570,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);