[PATCH 2/2] iscsi: return -EIO when sense fields are meaningless

2020-07-01 Thread Xie Yongji
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 
---
 block/iscsi.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/block/iscsi.c b/block/iscsi.c
index 2964c9f8d2..387ed872ef 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -241,9 +241,11 @@ iscsi_co_generic_cb(struct iscsi_context *iscsi, int 
status,
 
 iTask->status = status;
 iTask->do_retry = 0;
+iTask->err_code = 0;
 iTask->task = task;
 
 if (status != SCSI_STATUS_GOOD) {
+iTask->err_code = -EIO;
 if (iTask->retries++ < ISCSI_CMD_RETRIES) {
 if (status == SCSI_STATUS_BUSY ||
 status == SCSI_STATUS_TIMEOUT ||
-- 
2.11.0




Re: [PATCH 2/2] iscsi: return -EIO when sense fields are meaningless

2020-07-01 Thread Paolo Bonzini
On 01/07/20 12:54, Xie Yongji wrote:
> 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 
> ---
>  block/iscsi.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/block/iscsi.c b/block/iscsi.c
> index 2964c9f8d2..387ed872ef 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -241,9 +241,11 @@ iscsi_co_generic_cb(struct iscsi_context *iscsi, int 
> status,
>  
>  iTask->status = status;
>  iTask->do_retry = 0;
> +iTask->err_code = 0;
>  iTask->task = task;
>  
>  if (status != SCSI_STATUS_GOOD) {
> +iTask->err_code = -EIO;
>  if (iTask->retries++ < ISCSI_CMD_RETRIES) {
>  if (status == SCSI_STATUS_BUSY ||
>  status == SCSI_STATUS_TIMEOUT ||
> 

Queued both, thanks.

Paolo