All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Eric Farman <farman@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/3] scsi/virtio-scsi: Cleanup of I/Os that never started
Date: Tue, 14 Jan 2014 15:49:28 +0100	[thread overview]
Message-ID: <52D54E78.9040805@redhat.com> (raw)
In-Reply-To: <1389709469-15111-3-git-send-email-farman@linux.vnet.ibm.com>

Il 14/01/2014 15:24, Eric Farman ha scritto:
> There is still a small window that occurs when a cancel I/O affects
> an asynchronous I/O operation that hasn't started.  In other words,
> when the residual data length equals the expected data length.
> 
> Today, the routine virtio_scsi_command_complete fails because the
> VirtIOSCSIReq pointer (from the hba_private field in SCSIRequest)
> was cleared earlier when virtio_scsi_complete_req was called by
> the virtio_scsi_request_cancelled routine.  As a result, the
> virtio_scsi_command_complete routine needs to simply return when
> it is processing a SCSIRequest block that was marked canceled.
> 
> Signed-off-by: Eric Farman <farman@linux.vnet.ibm.com>
> ---
>  hw/scsi/virtio-scsi.c |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
> index a8fde04..49a9576 100644
> --- a/hw/scsi/virtio-scsi.c
> +++ b/hw/scsi/virtio-scsi.c
> @@ -306,6 +306,10 @@ static void virtio_scsi_command_complete(SCSIRequest *r, uint32_t status,
>      VirtIOSCSIReq *req = r->hba_private;
>      uint32_t sense_len;
>  
> +    if (r->io_canceled) {
> +        return;
> +    }
> +
>      req->resp.cmd->response = VIRTIO_SCSI_S_OK;
>      req->resp.cmd->status = status;
>      if (req->resp.cmd->status == GOOD) {
> 

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

Can you please look more closely into whether patch 1 is really
necessary, include the small fix I posted into that review, and post v2
of the series?

Thanks!

Paolo

  reply	other threads:[~2014-01-14 14:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-14 14:24 [Qemu-devel] [PATCH RFC 0/3] virtio-scsi unplug of active device Eric Farman
2014-01-14 14:24 ` [Qemu-devel] [PATCH 1/3] scsi/virtio-scsi: Properly flush I/Os inflight during an unplug Eric Farman
2014-01-14 14:45   ` Paolo Bonzini
2014-01-14 14:24 ` [Qemu-devel] [PATCH 2/3] scsi/virtio-scsi: Cleanup of I/Os that never started Eric Farman
2014-01-14 14:49   ` Paolo Bonzini [this message]
2014-01-14 16:08     ` Eric Farman
2014-01-14 14:24 ` [Qemu-devel] [PATCH 3/3] scsi/virtio-scsi: Prevent assertion on missed events Eric Farman
2014-01-14 14:31   ` Eric Farman
2014-01-14 14:47   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D54E78.9040805@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=farman@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.