iscsi: return -EIO when sense fields are meaningless

When an I/O request failed, now we only return correct
value on scsi check condition. We should also have a
default errno such as -EIO in other case.

Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
Message-Id: <20200701105444.3226-2-xieyongji@bytedance.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Xie Yongji 2020-07-01 18:54:44 +08:00 committed by Paolo Bonzini
parent dd3b00202a
commit c58daf76a6

View File

@ -241,9 +241,11 @@ iscsi_co_generic_cb(struct iscsi_context *iscsi, int status,
iTask->status = status; iTask->status = status;
iTask->do_retry = 0; iTask->do_retry = 0;
iTask->err_code = 0;
iTask->task = task; iTask->task = task;
if (status != SCSI_STATUS_GOOD) { if (status != SCSI_STATUS_GOOD) {
iTask->err_code = -EIO;
if (iTask->retries++ < ISCSI_CMD_RETRIES) { if (iTask->retries++ < ISCSI_CMD_RETRIES) {
if (status == SCSI_STATUS_BUSY || if (status == SCSI_STATUS_BUSY ||
status == SCSI_STATUS_TIMEOUT || status == SCSI_STATUS_TIMEOUT ||