qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/2] iscsi: Translate scsi sense into error code


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH 1/2] iscsi: Translate scsi sense into error code
Date: Thu, 22 Oct 2015 11:11:11 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 22.10.2015 um 10:17 hat Fam Zheng geschrieben:
> Previously we return -EIO blindly when anything goes wrong. Add a helper
> function to parse sense fields and try to make the return code more
> meaningful.
> 
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  block/iscsi.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 55 insertions(+), 1 deletion(-)
> 
> diff --git a/block/iscsi.c b/block/iscsi.c
> index 93f1ee4..f3e20ae 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -84,6 +84,7 @@ typedef struct IscsiTask {
>      IscsiLun *iscsilun;
>      QEMUTimer retry_timer;
>      bool force_next_flush;
> +    int err_code;
>  } IscsiTask;
>  
>  typedef struct IscsiAIOCB {
> @@ -182,6 +183,58 @@ static inline unsigned exp_random(double mean)
>  #define QEMU_SCSI_STATUS_TIMEOUT        SCSI_STATUS_TIMEOUT
>  #endif
>  
> +static int iscsi_translate_sense(struct scsi_sense *sense)
> +{
> +    int ret = 0;
> +
> +    switch (sense->key) {
> +    case SCSI_SENSE_NO_SENSE:
> +        return 0;
> +        break;
> +    case SCSI_SENSE_NOT_READY:
> +        return -EBUSY;
> +        break;
> +    case SCSI_SENSE_DATA_PROTECTION:
> +        return -EACCES;
> +        break;
> +    case SCSI_SENSE_COMMAND_ABORTED:
> +        return -ECANCELED;
> +        break;
> +    case SCSI_SENSE_ILLEGAL_REQUEST:
> +        /* Parse ASCQ */
> +        break;
> +    default:
> +        return -EIO;
> +        break;
> +    }

break after return is dead code.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]