Browse Source

[SCSI] scsi_dh: Check for sdev state in store_dh_state()

Avoid attaching a hardware handler to a device which is
already scheduled for deletion.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Hannes Reinecke 14 years ago
parent
commit
6bc8d2a0c6
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/scsi/device_handler/scsi_dh.c

+ 4 - 0
drivers/scsi/device_handler/scsi_dh.c

@@ -190,6 +190,10 @@ store_dh_state(struct device *dev, struct device_attribute *attr,
 	struct scsi_device_handler *scsi_dh;
 	int err = -EINVAL;
 
+	if (sdev->sdev_state == SDEV_CANCEL ||
+	    sdev->sdev_state == SDEV_DEL)
+		return -ENODEV;
+
 	if (!sdev->scsi_dh_data) {
 		/*
 		 * Attach to a device handler