Hi Martin,
在 2021/3/25 10:50, Martin K. Petersen 写道:
Hi Jason!
@@ -55,6 +55,19 @@ static inline int scsi_status_is_good(int status)
(status == SAM_STAT_COMMAND_TERMINATED));
}
+/** scsi_result_is_good - check the result return.
+ *
+ * @result: the result passed up from the driver (including host and
+ * driver components)
+ *
+ * Drivers may only set other bytes but not status byte.
+ * This checks both the status byte and other bytes.
+ */
+static inline int scsi_result_is_good(int result)
+{
+ return scsi_status_is_good(result) && (result & ~0xff) == 0;
+}
+
/*
* standard mode-select header prepended to all mode-select commands
Instead of introducing a "don't be broken" variant of
scsi_status_is_good(), I'd prefer you to fix the latter to do the right
thing wrt. offline devices.
There aren't a ton of scsi_result_is_good() call sites to check. And I
suspect that most of them wouldn't actually consider the DID_NO_CONNECT
scenario to be "good".
OK, I'll have a try and check if it works for most of the call sites.
Thanks,
Jason