[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 08/20] mirror: Switch mirror_do_zero_or_disca
From: |
Jeff Cody |
Subject: |
Re: [Qemu-devel] [PATCH v3 08/20] mirror: Switch mirror_do_zero_or_discard() to byte-based |
Date: |
Fri, 30 Jun 2017 16:22:53 -0400 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Tue, Jun 27, 2017 at 02:24:46PM -0500, Eric Blake wrote:
> We are gradually converting to byte-based interfaces, as they are
> easier to reason about than sector-based. Convert another internal
> function (no semantic change).
>
> Signed-off-by: Eric Blake <address@hidden>
> Reviewed-by: John Snow <address@hidden>
>
Reviewed-by: Jeff Cody <address@hidden>
> ---
> v2: no change
> ---
> block/mirror.c | 20 +++++++++++---------
> 1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/block/mirror.c b/block/mirror.c
> index 9e28d59..af27bcc 100644
> --- a/block/mirror.c
> +++ b/block/mirror.c
> @@ -305,8 +305,8 @@ static int mirror_do_read(MirrorBlockJob *s, int64_t
> sector_num,
> }
>
> static void mirror_do_zero_or_discard(MirrorBlockJob *s,
> - int64_t sector_num,
> - int nb_sectors,
> + int64_t offset,
> + uint64_t bytes,
> bool is_discard)
> {
> MirrorOp *op;
> @@ -315,16 +315,16 @@ static void mirror_do_zero_or_discard(MirrorBlockJob *s,
> * so the freeing in mirror_iteration_done is nop. */
> op = g_new0(MirrorOp, 1);
> op->s = s;
> - op->offset = sector_num * BDRV_SECTOR_SIZE;
> - op->bytes = nb_sectors * BDRV_SECTOR_SIZE;
> + op->offset = offset;
> + op->bytes = bytes;
>
> s->in_flight++;
> - s->bytes_in_flight += nb_sectors * BDRV_SECTOR_SIZE;
> + s->bytes_in_flight += bytes;
> if (is_discard) {
> - blk_aio_pdiscard(s->target, sector_num << BDRV_SECTOR_BITS,
> + blk_aio_pdiscard(s->target, offset,
> op->bytes, mirror_write_complete, op);
> } else {
> - blk_aio_pwrite_zeroes(s->target, sector_num * BDRV_SECTOR_SIZE,
> + blk_aio_pwrite_zeroes(s->target, offset,
> op->bytes, s->unmap ? BDRV_REQ_MAY_UNMAP : 0,
> mirror_write_complete, op);
> }
> @@ -453,7 +453,8 @@ static uint64_t coroutine_fn
> mirror_iteration(MirrorBlockJob *s)
> break;
> case MIRROR_METHOD_ZERO:
> case MIRROR_METHOD_DISCARD:
> - mirror_do_zero_or_discard(s, sector_num, io_sectors,
> + mirror_do_zero_or_discard(s, sector_num * BDRV_SECTOR_SIZE,
> + io_sectors * BDRV_SECTOR_SIZE,
> mirror_method ==
> MIRROR_METHOD_DISCARD);
> if (write_zeroes_ok) {
> io_bytes_acct = 0;
> @@ -657,7 +658,8 @@ static int coroutine_fn mirror_dirty_init(MirrorBlockJob
> *s)
> continue;
> }
>
> - mirror_do_zero_or_discard(s, sector_num, nb_sectors, false);
> + mirror_do_zero_or_discard(s, sector_num * BDRV_SECTOR_SIZE,
> + nb_sectors * BDRV_SECTOR_SIZE, false);
> sector_num += nb_sectors;
> }
>
> --
> 2.9.4
>
- Re: [Qemu-devel] [PATCH v3 03/20] stream: Switch stream_populate() to byte-based, (continued)
- [Qemu-devel] [PATCH v3 02/20] trace: Show blockjob actions via bytes, not sectors, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 04/20] stream: Switch stream_run() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 06/20] commit: Switch commit_run() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 05/20] commit: Switch commit_populate() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 08/20] mirror: Switch mirror_do_zero_or_discard() to byte-based, Eric Blake, 2017/06/27
- Re: [Qemu-devel] [PATCH v3 08/20] mirror: Switch mirror_do_zero_or_discard() to byte-based,
Jeff Cody <=
- [Qemu-devel] [PATCH v3 07/20] mirror: Switch MirrorBlockJob to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 09/20] mirror: Update signature of mirror_clip_sectors(), Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 10/20] mirror: Switch mirror_cow_align() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 11/20] mirror: Switch mirror_do_read() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 12/20] mirror: Switch mirror_iteration() to byte-based, Eric Blake, 2017/06/27