[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 0/9] block: Fixes for bdrv_drain
From: |
Fam Zheng |
Subject: |
[Qemu-block] [PATCH 0/9] block: Fixes for bdrv_drain |
Date: |
Mon, 26 Oct 2015 14:24:44 +0800 |
Previously bdrv_drain and bdrv_drain_all don't handle ioctl, flush and discard
requests (which are fundamentally the same as read and write requests that
change disk state). Forgetting such requests leaves us in risk of violating
the invariant that bdrv_drain() callers rely on - all asynchronous requests
must have completed after bdrv_drain returns.
Enrich the tracked request types, and add tracked_request_begin/end pairs to
all three code paths. As a prerequisite, ioctl code is moved into coroutine
too.
The last two patches take care of QED's "need check" timer, so that after
bdrv_drain returns, the driver is in a consistent state.
Fam
Fam Zheng (9):
block: Add more types for tracked request
block: Track flush requests
block: Track discard requests
iscsi: Emulate commands in iscsi_aio_ioctl as iscsi_ioctl
block: Add ioctl parameter fields to BlockRequest
block: Emulate bdrv_ioctl with bdrv_aio_ioctl and track both
block: Drop BlockDriver.bdrv_ioctl
block: Introduce BlockDriver.bdrv_drain callback
qed: Implement .bdrv_drain
block/io.c | 144 +++++++++++++++++++++++++++++++++++++++-------
block/iscsi.c | 72 ++++++++++++-----------
block/qed.c | 13 +++++
block/raw-posix.c | 9 ---
block/raw_bsd.c | 6 --
include/block/block.h | 16 ++++--
include/block/block_int.h | 17 +++++-
7 files changed, 200 insertions(+), 77 deletions(-)
--
2.4.3
- [Qemu-block] [PATCH 0/9] block: Fixes for bdrv_drain,
Fam Zheng <=
- [Qemu-block] [PATCH 1/9] block: Add more types for tracked request, Fam Zheng, 2015/10/26
- [Qemu-block] [PATCH 2/9] block: Track flush requests, Fam Zheng, 2015/10/26
- [Qemu-block] [PATCH 3/9] block: Track discard requests, Fam Zheng, 2015/10/26
- [Qemu-block] [PATCH 4/9] iscsi: Emulate commands in iscsi_aio_ioctl as iscsi_ioctl, Fam Zheng, 2015/10/26
- [Qemu-block] [PATCH 5/9] block: Add ioctl parameter fields to BlockRequest, Fam Zheng, 2015/10/26
- [Qemu-block] [PATCH 6/9] block: Emulate bdrv_ioctl with bdrv_aio_ioctl and track both, Fam Zheng, 2015/10/26