if scsi_host_template->host_reset is NULL, when user
"echo adapter > /sys/class/scsi_host/hostx/host_reset",
-EINVAL will return even string compare successfully. It make user confuse.

change to:
-EINVAL         if string not match "adapter" / "firmware";
-EOPNOTSUPP     if string match but not implement ->host_reset.

Signed-off-by: weiping zhang <zhangweip...@didichuxing.com>
---
 drivers/scsi/scsi_sysfs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index dff8faf..3e664f4 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -272,6 +272,8 @@ store_host_reset(struct device *dev, struct 
device_attribute *attr,
 
        if (sht->host_reset)
                ret = sht->host_reset(shost, type);
+       else
+               ret = -EOPNOTSUPP;
 
 exit_store_host_reset:
        if (ret == 0)
-- 
2.9.4

Reply via email to