socsvn commit: r225035 -
soc2011/oleksandr/oleksandr-head/head/sys/cam
oleksandr at FreeBSD.org
oleksandr at FreeBSD.org
Fri Aug 12 08:28:13 UTC 2011
Author: oleksandr
Date: Fri Aug 12 08:28:11 2011
New Revision: 225035
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=225035
Log:
Review a type of error
Modified:
soc2011/oleksandr/oleksandr-head/head/sys/cam/cam_periph.c
Modified: soc2011/oleksandr/oleksandr-head/head/sys/cam/cam_periph.c
==============================================================================
--- soc2011/oleksandr/oleksandr-head/head/sys/cam/cam_periph.c Fri Aug 12 07:04:16 2011 (r225034)
+++ soc2011/oleksandr/oleksandr-head/head/sys/cam/cam_periph.c Fri Aug 12 08:28:11 2011 (r225035)
@@ -1707,14 +1707,14 @@
*/
if (status == CAM_SEL_TIMEOUT || status == CAM_SCSI_BUSY ||
status == CAM_SIM_QUEUED || status == CAM_FUNC_NOTAVAIL ||
- status == CAM_REQ_INVALID)
+ status == CAM_REQ_INVALID || status == CAM_CMD_TIMEOUT)
error_flag_ret = DEVSTAT_ERROR_RETRIABLE;
/*
* If the error is critical refer it to the type of non retry able.
*/
if (status == CAM_REQ_CMP_ERR || status == CAM_TID_INVALID ||
status == CAM_SCSI_STATUS_ERROR || status == CAM_AUTOSENSE_FAIL ||
- status == CAM_LUN_INVALID)
+ status == CAM_LUN_INVALID || status == CAM_AUTOSNS_VALID)
error_flag_ret = DEVSTAT_ERROR_NON_RETRIABLE;
/*
* If the error is write error refer it to the type of write error.
@@ -1727,7 +1727,8 @@
if (ccb->ccb_h.flags == CAM_DIR_IN && error_flag_ret != 0)
error_flag_type = DEVSTAT_ERROR_READ_ERROR;
/*
- * If the request is countrol and there is no action with data * refer it to the type of other error.
+ * If the request is countrol and there is no action with data
+ * refer it to the type of other error.
*/
if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE &&
error_flag_ret != 0)
@@ -1737,10 +1738,9 @@
* in devstat and increase the corresponding counter of errors.
*/
if (error_flag_ret) {
- device_error = devstat_search(
+ if ((device_error = devstat_search(
ccb->ccb_h.path->periph->periph_name,
- ccb->ccb_h.path->periph->unit_number);
- if (device_error != NULL) {
+ ccb->ccb_h.path->periph->unit_number)) != NULL) {
devstat_add_error(device_error,
error_flag_ret | error_flag_type);
}
More information about the svn-soc-all
mailing list