sg_format.c (sg3_utils-1.47r908.tgz) | : | sg_format.c (sg3_utils-1.47r915.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 43 | skipping to change at line 43 | |||
#ifdef HAVE_CONFIG_H | #ifdef HAVE_CONFIG_H | |||
#include "config.h" | #include "config.h" | |||
#endif | #endif | |||
#include "sg_lib.h" | #include "sg_lib.h" | |||
#include "sg_cmds_basic.h" | #include "sg_cmds_basic.h" | |||
#include "sg_cmds_extra.h" | #include "sg_cmds_extra.h" | |||
#include "sg_unaligned.h" | #include "sg_unaligned.h" | |||
#include "sg_pr2serr.h" | #include "sg_pr2serr.h" | |||
#include "sg_pt.h" | #include "sg_pt.h" | |||
static const char * version_str = "1.62 20201223"; | static const char * version_str = "1.63 20210830"; | |||
#define RW_ERROR_RECOVERY_PAGE 1 /* can give alternate with --mode=MP */ | #define RW_ERROR_RECOVERY_PAGE 1 /* can give alternate with --mode=MP */ | |||
#define SHORT_TIMEOUT 20 /* 20 seconds unless --wait given */ | #define SHORT_TIMEOUT 20 /* 20 seconds unless --wait given */ | |||
#define FORMAT_TIMEOUT (20 * 3600) /* 20 hours ! */ | #define FORMAT_TIMEOUT (20 * 3600) /* 20 hours ! */ | |||
#define FOUR_TBYTE (4LL * 1000 * 1000 * 1000 * 1000) | #define FOUR_TBYTE (4LL * 1000 * 1000 * 1000 * 1000) | |||
#define LONG_FORMAT_TIMEOUT (40 * 3600) /* 40 hours */ | #define LONG_FORMAT_TIMEOUT (40 * 3600) /* 40 hours */ | |||
#define EIGHT_TBYTE (FOUR_TBYTE * 2) | #define EIGHT_TBYTE (FOUR_TBYTE * 2) | |||
#define VLONG_FORMAT_TIMEOUT (80 * 3600) /* 3 days, 8 hours */ | #define VLONG_FORMAT_TIMEOUT (80 * 3600) /* 3 days, 8 hours */ | |||
skipping to change at line 307 | skipping to change at line 307 | |||
if (NULL == ptvp) { | if (NULL == ptvp) { | |||
pr2serr("%s: out of memory\n", __func__); | pr2serr("%s: out of memory\n", __func__); | |||
return sg_convert_errno(ENOMEM); | return sg_convert_errno(ENOMEM); | |||
} | } | |||
set_scsi_pt_cdb(ptvp, fm_cdb, sizeof(fm_cdb)); | set_scsi_pt_cdb(ptvp, fm_cdb, sizeof(fm_cdb)); | |||
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | |||
set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, transfer_len); | set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, transfer_len); | |||
res = do_scsi_pt(ptvp, sg_fd, timeout, verbose); | res = do_scsi_pt(ptvp, sg_fd, timeout, verbose); | |||
ret = sg_cmds_process_resp(ptvp, fm_s, res, noisy, verbose, | ret = sg_cmds_process_resp(ptvp, fm_s, res, noisy, verbose, | |||
&sense_cat); | &sense_cat); | |||
if (-1 == 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)); | ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); | |||
else if (-2 == ret) { | } else if (-2 == ret) { | |||
switch (sense_cat) { | switch (sense_cat) { | |||
case SG_LIB_CAT_RECOVERED: | case SG_LIB_CAT_RECOVERED: | |||
case SG_LIB_CAT_NO_SENSE: | case SG_LIB_CAT_NO_SENSE: | |||
ret = 0; | ret = 0; | |||
break; | break; | |||
default: | default: | |||
ret = sense_cat; | ret = sense_cat; | |||
break; | break; | |||
} | } | |||
} else { | } else { | |||
skipping to change at line 366 | skipping to change at line 369 | |||
ptvp = construct_scsi_pt_obj(); | ptvp = construct_scsi_pt_obj(); | |||
if (NULL == ptvp) { | if (NULL == ptvp) { | |||
pr2serr("%s: out of memory\n", __func__); | pr2serr("%s: out of memory\n", __func__); | |||
return sg_convert_errno(ENOMEM); | return sg_convert_errno(ENOMEM); | |||
} | } | |||
set_scsi_pt_cdb(ptvp, fwp_cdb, sizeof(fwp_cdb)); | set_scsi_pt_cdb(ptvp, fwp_cdb, sizeof(fwp_cdb)); | |||
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | |||
res = do_scsi_pt(ptvp, sg_fd, timeout, verbose); | res = do_scsi_pt(ptvp, sg_fd, timeout, verbose); | |||
ret = sg_cmds_process_resp(ptvp, fwp_s, res, noisy, verbose, | ret = sg_cmds_process_resp(ptvp, fwp_s, res, noisy, verbose, | |||
&sense_cat); | &sense_cat); | |||
if (-1 == 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)); | ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); | |||
else if (-2 == ret) { | } else if (-2 == ret) { | |||
switch (sense_cat) { | switch (sense_cat) { | |||
case SG_LIB_CAT_RECOVERED: | case SG_LIB_CAT_RECOVERED: | |||
case SG_LIB_CAT_NO_SENSE: | case SG_LIB_CAT_NO_SENSE: | |||
ret = 0; | ret = 0; | |||
break; | break; | |||
default: | default: | |||
ret = sense_cat; | ret = sense_cat; | |||
break; | break; | |||
} | } | |||
} else { | } else { | |||
End of changes. 5 change blocks. | ||||
5 lines changed or deleted | 11 lines changed or added |