[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/9] block: pass qiov into before_write notifier
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 6/9] block: pass qiov into before_write notifier |
Date: |
Tue, 14 Jun 2016 22:07:50 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 06/14/2016 09:25 AM, Denis V. Lunev wrote:
> Signed-off-by: Denis V. Lunev <address@hidden>
The commit message says what, but not why. It's useful to give
reviewers a hint as to why a patch makes sense (such as a future patch
being able to use the write notifier to make mirroring more efficient if
it knows what is being mirrored).
> Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> CC: Stefan Hajnoczi <address@hidden>
> CC: Fam Zheng <address@hidden>
> CC: Kevin Wolf <address@hidden>
> CC: Max Reitz <address@hidden>
> CC: Jeff Cody <address@hidden>
> CC: Eric Blake <address@hidden>
> ---
> block/io.c | 12 +++++++-----
> include/block/block_int.h | 1 +
> 2 files changed, 8 insertions(+), 5 deletions(-)
>
> @@ -2228,7 +2230,7 @@ int coroutine_fn bdrv_co_discard(BlockDriverState *bs,
> int64_t sector_num,
> return 0;
> }
>
> - tracked_request_begin(&req, bs, sector_num, nb_sectors,
> + tracked_request_begin(&req, bs, NULL, sector_num, nb_sectors,
> BDRV_TRACKED_DISCARD);
> bdrv_set_dirty(bs, sector_num, nb_sectors);
>
> @@ -2331,7 +2333,7 @@ static int bdrv_co_do_ioctl(BlockDriverState *bs, int
> req, void *buf)
> };
> BlockAIOCB *acb;
>
> - tracked_request_begin(&tracked_req, bs, 0, 0, BDRV_TRACKED_IOCTL);
> + tracked_request_begin(&tracked_req, bs, NULL, 0, 0, BDRV_TRACKED_IOCTL);
> if (!drv || !drv->bdrv_aio_ioctl) {
> co.ret = -ENOTSUP;
> goto out;
> diff --git a/include/block/block_int.h b/include/block/block_int.h
> index 30a9717..72f463a 100644
> --- a/include/block/block_int.h
> +++ b/include/block/block_int.h
> @@ -69,6 +69,7 @@ enum BdrvTrackedRequestType {
>
> typedef struct BdrvTrackedRequest {
> BlockDriverState *bs;
> + QEMUIOVector *qiov;
> int64_t offset;
> unsigned int bytes;
I guess bytes and qiov->size are not always redundant, because you pass
NULL for qiov for a zero or discard operation (an alternative would be
to always pass a qiov, even for zero/discard, so that we only need a
single size). But I've been pointing out our inconsistent use of qiov
for zeroes in multiple places, so I don't think it's worth changing in
this series, but in one of its own if we want to do it.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH 1/9] mirror: fix calling of blk_aio_pwritev/blk_aio_preadv, (continued)
[Qemu-devel] [PATCH 2/9] mirror: create mirror_dirty_init helper for mirror_run, Denis V. Lunev, 2016/06/14
[Qemu-devel] [PATCH 6/9] block: pass qiov into before_write notifier, Denis V. Lunev, 2016/06/14
[Qemu-devel] [PATCH 7/9] mirror: allow to save buffer for QEMUIOVector in MirrorOp, Denis V. Lunev, 2016/06/14
[Qemu-devel] [PATCH 5/9] mirror: improve performance of mirroring of empty disk, Denis V. Lunev, 2016/06/14