[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 12/29] block: write: Handle COR dependency after
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH v3 12/29] block: write: Handle COR dependency after I/O throttling |
Date: |
Fri, 17 Jan 2014 15:15:02 +0100 |
First waiting for all COR requests to complete and calling the
throttling function afterwards means that the request could be delayed
and we still need to wait for the COR request even if it was issued only
after the throttled write request.
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
block.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/block.c b/block.c
index 70b72f0..fe55217 100644
--- a/block.c
+++ b/block.c
@@ -2979,6 +2979,10 @@ static int coroutine_fn
bdrv_aligned_pwritev(BlockDriverState *bs,
assert((offset & (BDRV_SECTOR_SIZE - 1)) == 0);
assert((bytes & (BDRV_SECTOR_SIZE - 1)) == 0);
+ if (bs->copy_on_read_in_flight) {
+ wait_for_overlapping_requests(bs, sector_num, nb_sectors);
+ }
+
tracked_request_begin(&req, bs, sector_num, nb_sectors, true);
ret = notifier_with_return_list_notify(&bs->before_write_notifiers, &req);
@@ -3028,10 +3032,6 @@ static int coroutine_fn
bdrv_co_do_writev(BlockDriverState *bs,
return -EIO;
}
- if (bs->copy_on_read_in_flight) {
- wait_for_overlapping_requests(bs, sector_num, nb_sectors);
- }
-
/* throttling disk I/O */
if (bs->io_limits_enabled) {
bdrv_io_limits_intercept(bs, nb_sectors, true);
--
1.8.1.4
- Re: [Qemu-devel] [PATCH v3 08/29] raw: Probe required direct I/O alignment, (continued)
- [Qemu-devel] [PATCH v3 09/29] block: Introduce bdrv_aligned_preadv(), Kevin Wolf, 2014/01/17
- [Qemu-devel] [PATCH v3 10/29] block: Introduce bdrv_co_do_preadv(), Kevin Wolf, 2014/01/17
- [Qemu-devel] [PATCH v3 07/29] block: rename buffer_alignment to guest_block_size, Kevin Wolf, 2014/01/17
- [Qemu-devel] [PATCH v3 11/29] block: Introduce bdrv_aligned_pwritev(), Kevin Wolf, 2014/01/17
- [Qemu-devel] [PATCH v3 12/29] block: write: Handle COR dependency after I/O throttling,
Kevin Wolf <=
- [Qemu-devel] [PATCH v3 13/29] block: Introduce bdrv_co_do_pwritev(), Kevin Wolf, 2014/01/17
- [Qemu-devel] [PATCH v3 16/29] block: Make zero-after-EOF work with larger alignment, Kevin Wolf, 2014/01/17
- [Qemu-devel] [PATCH v3 14/29] block: Switch BdrvTrackedRequest to byte granularity, Kevin Wolf, 2014/01/17