diff options
author | Douglas Gilbert <dgilbert@interlog.com> | 2021-08-30 21:15:57 +0000 |
---|---|---|
committer | Douglas Gilbert <dgilbert@interlog.com> | 2021-08-30 21:15:57 +0000 |
commit | d4485d5b472462f2ee34bb18f1cef77d2c883b8e (patch) | |
tree | 6a3709bf6a6ef5ed2895c24c852281f3b3ee0580 /src/sg_get_elem_status.c | |
parent | 5fbd329cbcb0078fc787467703a2581935405b7e (diff) | |
download | sg3_utils-d4485d5b472462f2ee34bb18f1cef77d2c883b8e.tar.gz |
improve transport error handling. To fix report of a BAD_TARGET transport error but the utility still continued. introduce SG_LIB_TRANSPORT_ERROR [35] exit status
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@910 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'src/sg_get_elem_status.c')
-rw-r--r-- | src/sg_get_elem_status.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/sg_get_elem_status.c b/src/sg_get_elem_status.c index 389a3792..94f1813e 100644 --- a/src/sg_get_elem_status.c +++ b/src/sg_get_elem_status.c @@ -37,7 +37,7 @@ * given SCSI device. */ -static const char * version_str = "1.04 20210803"; /* sbc4r19 */ +static const char * version_str = "1.05 20210830"; /* sbc4r19 */ #ifndef UINT32_MAX @@ -174,9 +174,12 @@ sg_ll_get_phy_elem_status(int sg_fd, uint32_t starting_elem, uint8_t filter, res = do_scsi_pt(ptvp, -1, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cmd_name, res, noisy, verbose, &sense_cat); - if (-1 == ret) - ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); - else if (-2 == ret) { + if (-1 == ret) { + if (get_scsi_pt_transport_err(ptvp)) + ret = SG_LIB_TRANSPORT_ERROR; + else + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + } else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: |