qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 00/12] block: Protect nested event loop with 


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH v3 00/12] block: Protect nested event loop with    bdrv_drained_begin and bdrv_drained_end
Date: Mon, 19 Oct 2015 07:34:07 +0800
User-agent: Zoho Mail







---- On Fri, 16 Oct 2015 18:12:11 +0800 address@hidden 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

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