[SCSI] scsi_dh: create sysfs file, dh_state for all SCSI disk devices
authorChandra Seetharaman <sekharan@us.ibm.com>
Fri, 11 Sep 2009 17:20:35 +0000 (10:20 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Fri, 4 Dec 2009 18:01:29 +0000 (12:01 -0600)
Create the sysfs file, dh_state even if the new SCSI device is not
in the any of the device handler's internal lists.

Signed-Off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Acked-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/device_handler/scsi_dh.c

index 6f7f798910e8fc51d1a960fd4845ec39a7fdf983..e19a1a55270c03b443e47cfbba7b15bd65cfe7fd 100644 (file)
@@ -304,18 +304,15 @@ static int scsi_dh_notifier(struct notifier_block *nb,
        sdev = to_scsi_device(dev);
 
        if (action == BUS_NOTIFY_ADD_DEVICE) {
+               err = device_create_file(dev, &scsi_dh_state_attr);
+               /* don't care about err */
                devinfo = device_handler_match(NULL, sdev);
-               if (!devinfo)
-                       goto out;
-
-               err = scsi_dh_handler_attach(sdev, devinfo);
-               if (!err)
-                       err = device_create_file(dev, &scsi_dh_state_attr);
+               if (devinfo)
+                       err = scsi_dh_handler_attach(sdev, devinfo);
        } else if (action == BUS_NOTIFY_DEL_DEVICE) {
                device_remove_file(dev, &scsi_dh_state_attr);
                scsi_dh_handler_detach(sdev, NULL);
        }
-out:
        return err;
 }