Date: Fri, 13 Sep 2019 14:43:44 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r352287 - stable/12/sbin/camcontrol Message-ID: <201909131443.x8DEhiZa026869@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Fri Sep 13 14:43:44 2019 New Revision: 352287 URL: https://svnweb.freebsd.org/changeset/base/352287 Log: MFC r352018: Unify cam_send_ccb() error reporting. Error there mean that command was not even executed, and all information we have about it is errno, and cam_error_print() call is not very useful. Plus it is most likely a programmatic error, that shoud not happen. Modified: stable/12/sbin/camcontrol/attrib.c stable/12/sbin/camcontrol/camcontrol.c stable/12/sbin/camcontrol/persist.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/camcontrol/attrib.c ============================================================================== --- stable/12/sbin/camcontrol/attrib.c Fri Sep 13 14:43:05 2019 (r352286) +++ stable/12/sbin/camcontrol/attrib.c Fri Sep 13 14:43:44 2019 (r352287) @@ -344,12 +344,6 @@ scsiattrib(struct cam_device *device, int argc, char * if (cam_send_ccb(device, ccb) < 0) { warn("error sending %s ATTRIBUTE", (read_attr != 0) ? "READ" : "WRITE"); - - if (verbosemode != 0) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - error = 1; goto bailout; } Modified: stable/12/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/12/sbin/camcontrol/camcontrol.c Fri Sep 13 14:43:05 2019 (r352286) +++ stable/12/sbin/camcontrol/camcontrol.c Fri Sep 13 14:43:44 2019 (r352287) @@ -437,7 +437,7 @@ getdevlist(struct cam_device *device) ccb->cgdl.status = CAM_GDEVLIST_MORE_DEVS; while (ccb->cgdl.status == CAM_GDEVLIST_MORE_DEVS) { if (cam_send_ccb(device, ccb) < 0) { - perror("error getting device list"); + warn("error getting device list"); cam_freeccb(ccb); return (1); } @@ -787,7 +787,7 @@ print_dev_mmcsd(struct device_match_result *dev_result advi->buf = (uint8_t *)&mmc_ident_data; if (cam_send_ccb(dev, ccb) < 0) { - warn("error sending CAMIOCOMMAND ioctl"); + warn("error sending XPT_DEV_ADVINFO CCB"); cam_freeccb(ccb); cam_close_device(dev); return (1); @@ -829,7 +829,7 @@ nvme_get_cdata(struct cam_device *dev, struct nvme_con advi->buf = (uint8_t *)cdata; if (cam_send_ccb(dev, ccb) < 0) { - warn("error sending CAMIOCOMMAND ioctl"); + warn("error sending XPT_DEV_ADVINFO CCB"); cam_freeccb(ccb); cam_close_device(dev); return(1); @@ -895,13 +895,7 @@ testunitready(struct cam_device *device, int task_attr if (cam_send_ccb(device, ccb) < 0) { if (quiet == 0) - perror("error sending test unit ready"); - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - + warn("error sending TEST UNIT READY command"); cam_freeccb(ccb); return (1); } @@ -964,13 +958,7 @@ scsistart(struct cam_device *device, int startstop, in ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER; if (cam_send_ccb(device, ccb) < 0) { - perror("error sending start unit"); - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - + warn("error sending START STOP UNIT command"); cam_freeccb(ccb); return (1); } @@ -1133,13 +1121,7 @@ scsiinquiry(struct cam_device *device, int task_attr, ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER; if (cam_send_ccb(device, ccb) < 0) { - perror("error sending SCSI inquiry"); - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - + warn("error sending INQUIRY command"); cam_freeccb(ccb); return (1); } @@ -1215,13 +1197,7 @@ scsiserial(struct cam_device *device, int task_attr, i ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER; if (cam_send_ccb(device, ccb) < 0) { - warn("error getting serial number"); - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - + warn("error sending INQUIRY command"); cam_freeccb(ccb); free(serial_buf); return (1); @@ -1821,12 +1797,6 @@ scsi_cam_pass_16_send(struct cam_device *device, union warn("error sending ATA %s via pass_16", ata_op_string(&ata_cmd)); } - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - return (1); } @@ -1868,12 +1838,6 @@ ata_cam_send(struct cam_device *device, union ccb *ccb warn("error sending ATA %s", ata_op_string(&(ccb->ataio.cmd))); } - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - return (1); } @@ -4150,13 +4114,7 @@ next_batch: ccb->ccb_h.flags |= CAM_DEV_QFRZDIS; if (cam_send_ccb(device, ccb) < 0) { - perror("error reading defect list"); - - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - + warn("error sending READ DEFECT DATA command"); error = 1; goto defect_bailout; } @@ -5293,7 +5251,7 @@ tagcontrol(struct cam_device *device, int argc, char * if (cam_send_ccb(device, ccb) < 0) { - perror("error sending XPT_REL_SIMQ CCB"); + warn("error sending XPT_REL_SIMQ CCB"); retval = 1; goto tagcontrol_bailout; } @@ -5317,7 +5275,7 @@ tagcontrol(struct cam_device *device, int argc, char * ccb->ccb_h.func_code = XPT_GDEV_STATS; if (cam_send_ccb(device, ccb) < 0) { - perror("error sending XPT_GDEV_STATS CCB"); + warn("error sending XPT_GDEV_STATS CCB"); retval = 1; goto tagcontrol_bailout; } @@ -5533,9 +5491,6 @@ get_cpi(struct cam_device *device, struct ccb_pathinq ccb->ccb_h.func_code = XPT_PATH_INQ; if (cam_send_ccb(device, ccb) < 0) { warn("get_cpi: error sending Path Inquiry CCB"); - if (arglist & CAM_ARG_VERBOSE) - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); retval = 1; goto get_cpi_bailout; } @@ -5570,10 +5525,7 @@ get_cgd(struct cam_device *device, struct ccb_getdev * CCB_CLEAR_ALL_EXCEPT_HDR(&ccb->cgd); ccb->ccb_h.func_code = XPT_GDEV_TYPE; if (cam_send_ccb(device, ccb) < 0) { - warn("get_cgd: error sending Path Inquiry CCB"); - if (arglist & CAM_ARG_VERBOSE) - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); + warn("get_cgd: error sending Get type information CCB"); retval = 1; goto get_cgd_bailout; } @@ -6129,10 +6081,7 @@ get_print_cts(struct cam_device *device, int user_sett ccb->cts.type = CTS_TYPE_USER_SETTINGS; if (cam_send_ccb(device, ccb) < 0) { - perror("error sending XPT_GET_TRAN_SETTINGS CCB"); - if (arglist & CAM_ARG_VERBOSE) - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); + warn("error sending XPT_GET_TRAN_SETTINGS CCB"); retval = 1; goto get_print_cts_bailout; } @@ -6259,32 +6208,13 @@ ratecontrol(struct cam_device *device, int task_attr, break; } } - CCB_CLEAR_ALL_EXCEPT_HDR(&ccb->cpi); /* * Grab path inquiry information, so we can determine whether * or not the initiator is capable of the things that the user * requests. */ - ccb->ccb_h.func_code = XPT_PATH_INQ; - if (cam_send_ccb(device, ccb) < 0) { - perror("error sending XPT_PATH_INQ CCB"); - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - retval = 1; + if ((retval = get_cpi(device, &cpi)) != 0) goto ratecontrol_bailout; - } - if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - warnx("XPT_PATH_INQ CCB failed"); - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - retval = 1; - goto ratecontrol_bailout; - } - bcopy(&ccb->cpi, &cpi, sizeof(struct ccb_pathinq)); CCB_CLEAR_ALL_EXCEPT_HDR(&ccb->cts); if (quiet == 0) { fprintf(stdout, "%s parameters:\n", @@ -6472,11 +6402,7 @@ ratecontrol(struct cam_device *device, int task_attr, } ccb->ccb_h.func_code = XPT_SET_TRAN_SETTINGS; if (cam_send_ccb(device, ccb) < 0) { - perror("error sending XPT_SET_TRAN_SETTINGS CCB"); - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } + warn("error sending XPT_SET_TRAN_SETTINGS CCB"); retval = 1; goto ratecontrol_bailout; } @@ -6710,11 +6636,7 @@ doreport: * errors are expected. */ if (retval < 0) { - warn("error sending CAMIOCOMMAND ioctl"); - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } + warn("error sending TEST UNIT READY command"); error = 1; goto scsiformat_bailout; } @@ -6901,11 +6823,7 @@ sanitize_wait_scsi(struct cam_device *device, union cc * errors are expected. */ if (retval < 0) { - warn("error sending CAMIOCOMMAND ioctl"); - if (arglist & CAM_ARG_VERBOSE) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } + warn("error sending TEST UNIT READY command"); return (1); } @@ -7443,11 +7361,6 @@ retry: if (cam_send_ccb(device, ccb) < 0) { warn("error sending REPORT LUNS command"); - - if (arglist & CAM_ARG_VERBOSE) - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - retval = 1; goto bailout; } @@ -7699,11 +7612,6 @@ scsireadcapacity(struct cam_device *device, int argc, if (cam_send_ccb(device, ccb) < 0) { warn("error sending READ CAPACITY command"); - - if (arglist & CAM_ARG_VERBOSE) - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - retval = 1; goto bailout; } @@ -7746,11 +7654,6 @@ long_only: if (cam_send_ccb(device, ccb) < 0) { warn("error sending READ CAPACITY (16) command"); - - if (arglist & CAM_ARG_VERBOSE) - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - retval = 1; goto bailout; } @@ -9603,7 +9506,7 @@ retry_alloc: ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER; if (cam_send_ccb(device, ccb) < 0) { - perror("error sending REPORT SUPPORTED OPERATION CODES"); + warn("error sending REPORT SUPPORTED OPERATION CODES command"); retval = 1; goto bailout; } Modified: stable/12/sbin/camcontrol/persist.c ============================================================================== --- stable/12/sbin/camcontrol/persist.c Fri Sep 13 14:43:05 2019 (r352286) +++ stable/12/sbin/camcontrol/persist.c Fri Sep 13 14:43:44 2019 (r352287) @@ -858,12 +858,6 @@ retry: if (cam_send_ccb(device, ccb) < 0) { warn("error sending PERSISTENT RESERVE %s", (in != 0) ? "IN" : "OUT"); - - if (verbosemode != 0) { - cam_error_print(device, ccb, CAM_ESF_ALL, - CAM_EPF_ALL, stderr); - } - error = 1; goto bailout; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909131443.x8DEhiZa026869>