[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
[Qemu-devel] [PATCH 2/2] qcow2: Translate -ERANGE to -ENOSPC, Fam Zheng, 2015/10/22
Re: [Qemu-devel] [PATCH 0/2] Fix werror=enospc for qcow2 on iscsi, Peter Lieven, 2015/10/22
Re: [Qemu-devel] [PATCH 0/2] Fix werror=enospc for qcow2 on iscsi, Paolo Bonzini, 2015/10/22