Message ID | 1601268657-940-4-git-send-email-muneendra.kumar@broadcom.com |
---|---|
State | New |
Headers | show |
Series | scsi: Support to handle Intermittent errors | expand |
On 9/28/20 6:50 AM, Muneendra wrote: > Clearing the SCMD_NORETRIES_ABORT bit in state flag before > blk_mq_start_request. > > Added a code in scsi_result_to_blk_status to translate > a new error DID_TRANSPORT_MARGINAL to the corresponding blk_status_t > i.e BLK_STS_TRANSPORT > > Signed-off-by: Muneendra <muneendra.kumar@broadcom.com> > > --- > v2: > Made changes in scsi_result_to_blk_status to support DID_TRANSPORT_MARGINAL > --- > drivers/scsi/scsi_lib.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index f0ee11dc07e4..da95ae8b572f 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -643,6 +643,7 @@ static blk_status_t scsi_result_to_blk_status(struct scsi_cmnd *cmd, int result) > return BLK_STS_OK; > return BLK_STS_IOERR; > case DID_TRANSPORT_FAILFAST: > + case DID_TRANSPORT_MARGINAL: > return BLK_STS_TRANSPORT; > case DID_TARGET_FAILURE: > set_host_byte(cmd, DID_OK); > @@ -1689,6 +1690,7 @@ static blk_status_t scsi_queue_rq(struct blk_mq_hw_ctx *hctx, > req->rq_flags |= RQF_DONTPREP; > } else { > clear_bit(SCMD_STATE_COMPLETE, &cmd->state); > + clear_bit(SCMD_NORETRIES_ABORT, &cmd->state); > blk_mq_start_request(req); > } > > Please split off this patch and merge the first part with the next patch, and the second hunk with the previous one. Cheers, Hannes
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index f0ee11dc07e4..da95ae8b572f 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -643,6 +643,7 @@ static blk_status_t scsi_result_to_blk_status(struct scsi_cmnd *cmd, int result) return BLK_STS_OK; return BLK_STS_IOERR; case DID_TRANSPORT_FAILFAST: + case DID_TRANSPORT_MARGINAL: return BLK_STS_TRANSPORT; case DID_TARGET_FAILURE: set_host_byte(cmd, DID_OK); @@ -1689,6 +1690,7 @@ static blk_status_t scsi_queue_rq(struct blk_mq_hw_ctx *hctx, req->rq_flags |= RQF_DONTPREP; } else { clear_bit(SCMD_STATE_COMPLETE, &cmd->state); + clear_bit(SCMD_NORETRIES_ABORT, &cmd->state); blk_mq_start_request(req); }
Clearing the SCMD_NORETRIES_ABORT bit in state flag before blk_mq_start_request. Added a code in scsi_result_to_blk_status to translate a new error DID_TRANSPORT_MARGINAL to the corresponding blk_status_t i.e BLK_STS_TRANSPORT Signed-off-by: Muneendra <muneendra.kumar@broadcom.com> --- v2: Made changes in scsi_result_to_blk_status to support DID_TRANSPORT_MARGINAL --- drivers/scsi/scsi_lib.c | 2 ++ 1 file changed, 2 insertions(+)