All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Fam Zheng <famz@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 05/12] block: Introduce "drained begin/end" API
Date: Mon, 12 Oct 2015 16:27:06 +0200	[thread overview]
Message-ID: <561BC33A.4030108@redhat.com> (raw)
In-Reply-To: <1444650651-26227-6-git-send-email-famz@redhat.com>



On 12/10/2015 13:50, Fam Zheng wrote:
> +void bdrv_drained_begin(BlockDriverState *bs)
> +{
> +    if (bs->quiesce_counter++) {
> +        return;
> +    }
> +    aio_disable_external(bdrv_get_aio_context(bs));
> +    bdrv_drain(bs);
> +}

I think bdrv_drain should be called unconditionally, i.e. before the
"if".  This should also solve Kevin's doubt about new allocating write
request reenabling the timer: any write request from the drained section
happens normally, until you get a nested drain request and then the
callback completes the requests.

Paolo

  parent reply	other threads:[~2015-10-12 14:27 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-12 11:50 [Qemu-devel] [PATCH v2 00/12] block: bdrv_drained_begin/end for transactions on dataplane devices Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 01/12] aio: Add "is_external" flag for event handlers Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 02/12] nbd: Mark fd handlers client type as "external" Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 03/12] dataplane: Mark host notifiers' " Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 04/12] aio: introduce aio_{disable, enable}_external Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 05/12] block: Introduce "drained begin/end" API Fam Zheng
2015-10-12 13:59   ` Kevin Wolf
2015-10-12 14:27   ` Paolo Bonzini [this message]
2015-10-13  9:31     ` Kevin Wolf
2015-10-13 10:39       ` Paolo Bonzini
2015-10-13 11:12         ` Kevin Wolf
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 06/12] block: Add "drained begin/end" for transactional external snapshot Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 07/12] block: Add "drained begin/end" for transactional backup Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 08/12] block: Add "drained begin/end" for transactional blockdev-backup Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 09/12] block: Add "drained begin/end" for internal snapshot Fam Zheng
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 10/12] block: Introduce BlockDriver.bdrv_drain callback Fam Zheng
2015-10-12 14:17   ` Kevin Wolf
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 11/12] qed: Implement .bdrv_drain Fam Zheng
2015-10-12 14:23   ` Kevin Wolf
2015-10-12 11:50 ` [Qemu-devel] [PATCH v2 12/12] tests: Add test case for aio_disable_external Fam Zheng

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=561BC33A.4030108@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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.