[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drained_
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drained_begin/end |
Date: |
Wed, 11 May 2016 15:24:21 +0200 |
So far, bdrv_parent_drained_begin/end() was called for the duration of
the actual bdrv_drain() at the beginning of a drained section, but we
really should keep parents quiesced until the end of the drained
section.
This does not actually change behaviour at this point because the only
user of the .drained_begin/end BdrvChildRole callback is I/O throttling,
which already doesn't send any new requests after flushing its queue in
.drained_being. The patch merely removes a trap for future users.
Reported-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block/io.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block/io.c b/block/io.c
index 7c213ec..23abbc5 100644
--- a/block/io.c
+++ b/block/io.c
@@ -2749,11 +2749,14 @@ void bdrv_drained_begin(BlockDriverState *bs)
if (!bs->quiesce_counter++) {
aio_disable_external(bdrv_get_aio_context(bs));
}
+ bdrv_parent_drained_begin(bs);
bdrv_drain(bs);
}
void bdrv_drained_end(BlockDriverState *bs)
{
+ bdrv_parent_drained_end(bs);
+
assert(bs->quiesce_counter > 0);
if (--bs->quiesce_counter > 0) {
return;
--
1.8.3.1
- [Qemu-block] [PATCH v3 06/14] block: Move actual I/O throttling to BlockBackend, (continued)
- [Qemu-block] [PATCH v3 06/14] block: Move actual I/O throttling to BlockBackend, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 04/14] block: Convert throttle_group_get_name() to BlockBackend, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 03/14] block: throttle-groups: Use BlockBackend pointers internally, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 05/14] block: Move throttling fields from BDS to BB, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 07/14] block: Move I/O throttling configuration functions to BlockBackend, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 09/14] block: Drain throttling queue with BdrvChild callback, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 08/14] block: Introduce BdrvChild.opaque, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 12/14] block: Remove bdrv_move_feature_fields(), Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 11/14] block: Decouple throttling from BlockDriverState, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drained_begin/end,
Kevin Wolf <=
- [Qemu-block] [PATCH v3 14/14] block: Don't check throttled reqs in bdrv_requests_pending(), Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 13/14] Revert "block: Forbid I/O throttling on nodes with multiple parents for 2.6", Kevin Wolf, 2016/05/11
- Re: [Qemu-block] [PATCH v3 00/14] block: Move I/O throttling to BlockBackend, Stefan Hajnoczi, 2016/05/16