---- On Fri, 16 Oct 2015 18:12:11 +0800 f...@redhat.com wrote ----
I'll rebase this on to the recent bdrv_removal pull request today.
Fam
  v3: Call bdrv_drain unconditionally in bdrv_drained_begin.

    Document the internal I/O implications between bdrv_drain_begin and end.



The nested aio_poll()'s in block layer has a bug that new r/w requests from

ioeventfds and nbd exports are processed, which might break the caller's

semantics (qmp_transaction) or even pointers (bdrv_reopen).



Fam Zheng (12):

  aio: Add "is_external" flag for event handlers

  nbd: Mark fd handlers client type as "external"

  dataplane: Mark host notifiers' client type as "external"

  aio: introduce aio_{disable,enable}_external

  block: Introduce "drained begin/end" API

  block: Add "drained begin/end" for transactional external snapshot

  block: Add "drained begin/end" for transactional backup

  block: Add "drained begin/end" for transactional blockdev-backup

  block: Add "drained begin/end" for internal snapshot

  block: Introduce BlockDriver.bdrv_drain callback

  qed: Implement .bdrv_drain

  tests: Add test case for aio_disable_external



 aio-posix.c                     |  9 ++++-

 aio-win32.c                     |  8 +++-

 async.c                         |  3 +-

 block.c                         |  2 +

 block/curl.c                    | 14 ++++---

 block/io.c                      | 23 +++++++++++-

 block/iscsi.c                   |  9 ++---

 block/linux-aio.c               |  5 ++-

 block/nbd-client.c              | 10 +++--

 block/nfs.c                     | 17 ++++-----

 block/qed.c                     |  7 ++++

 block/sheepdog.c                | 38 ++++++++++++-------

 block/ssh.c                     |  5 ++-

 block/win32-aio.c               |  5 ++-

 blockdev.c                      | 27 +++++++++++---

 hw/block/dataplane/virtio-blk.c |  5 ++-

 hw/scsi/virtio-scsi-dataplane.c | 22 +++++++----

 include/block/aio.h             | 39 ++++++++++++++++++++

 include/block/block.h           | 24 ++++++++++++

 include/block/block_int.h       |  8 ++++

 iohandler.c                     |  3 +-

 nbd.c                           |  4 +-

 tests/test-aio.c                | 82 ++++++++++++++++++++++++++++-------------

 23 files changed, 276 insertions(+), 93 deletions(-)



-- 

2.4.3

Reply via email to