[PATCH 8/8] scsi_dh: don't allow to detach device handlers at runtime

Christoph Hellwig
2015-05-10T18:42:41Z

The I/O submission and completion pathes call into the device handler
without any synchronization agains detachment. So disallow detaching
device handlers at runtime.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
---
drivers/scsi/scsi_dh.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/scsi_dh.c b/drivers/scsi/scsi_dh.c
index 8cae1c9..336dc54 100644
--- a/drivers/scsi/scsi_dh.c
+++ b/drivers/scsi/scsi_dh.c
@@ -179,8 +179,9 @@ store_dh_state(struct device *dev, struct device_attribute *attr,
/*
* Detach from a device handler
*/
- scsi_dh_handler_detach(sdev);
- err = 0;
+ sdev_printk(KERN_WARNING, sdev,
+ "can't detach handler %s.\n", buf);
+ err = -EINVAL;
} else if (!strncmp(buf, "activate", 8)) {
/*
* Activate a device handler
--
1.9.1