qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/5] pr-helper: fix assertion failure on failed


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH 2/5] pr-helper: fix assertion failure on failed multipath PERSISTENT RESERVE IN
Date: Tue, 26 Jun 2018 13:16:53 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

On 06/26/2018 12:40 PM, Paolo Bonzini wrote:
> The response size is expected to be zero if the SCSI status is not
> "GOOD", but nothing was resetting it.
> 
> This can be reproduced simply by "sg_persist -s /dev/sdb" where /dev/sdb
> in the guest is a scsi-block device corresponding to a multipath device
> on the host.
> 
> Before:
> 
>   PR in (Read full status): Aborted command
> 
> and on the host:
> 
>   prh_write_response: Assertion `resp->sz == 0' failed.
> 
> After:
> 
>   PR in (Read full status): bad field in cdb or parameter list
>   (perhaps unsupported service action)
> 
> Reported-by: Jiri Belka <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

> ---
>  scsi/qemu-pr-helper.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c
> index 4057cf355c..0218d65bbf 100644
> --- a/scsi/qemu-pr-helper.c
> +++ b/scsi/qemu-pr-helper.c
> @@ -558,7 +558,11 @@ static int do_pr_in(int fd, const uint8_t *cdb, uint8_t 
> *sense,
>  #ifdef CONFIG_MPATH
>      if (is_mpath(fd)) {
>          /* multipath_pr_in fills the whole input buffer.  */
> -        return multipath_pr_in(fd, cdb, sense, data, *resp_sz);
> +        int r = multipath_pr_in(fd, cdb, sense, data, *resp_sz);
> +        if (r != GOOD) {
> +            *resp_sz = 0;
> +        }
> +        return r;
>      }
>  #endif
>  
> 



reply via email to

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