[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v2 08/20] mirror: Switch mirror_do_zero_or_discard()
From: |
Eric Blake |
Subject: |
[Qemu-block] [PATCH v2 08/20] mirror: Switch mirror_do_zero_or_discard() to byte-based |
Date: |
Wed, 10 May 2017 21:20:24 -0500 |
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>
---
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 d0544e3..dc99435 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);
}
@@ -448,7 +448,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;
@@ -645,7 +646,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.3
- [Qemu-block] [PATCH v2 00/20] make bdrv_is_allocated[_above] byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 01/20] blockjob: Track job ratelimits via bytes, not sectors, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 02/20] trace: Show blockjob actions via bytes, not sectors, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 03/20] stream: Switch stream_populate() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 04/20] stream: Switch stream_run() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 05/20] commit: Switch commit_populate() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 06/20] commit: Switch commit_run() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 07/20] mirror: Switch MirrorBlockJob to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 08/20] mirror: Switch mirror_do_zero_or_discard() to byte-based,
Eric Blake <=
- [Qemu-block] [PATCH v2 09/20] mirror: Update signature of mirror_clip_sectors(), Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 10/20] mirror: Switch mirror_cow_align() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 11/20] mirror: Switch mirror_do_read() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 12/20] mirror: Switch mirror_iteration() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 13/20] block: Drop unused bdrv_round_sectors_to_clusters(), Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 14/20] backup: Switch BackupBlockJob to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 15/20] backup: Switch block_backup.h to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 16/20] backup: Switch backup_do_cow() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 17/20] backup: Switch backup_run() to byte-based, Eric Blake, 2017/05/10
- [Qemu-block] [PATCH v2 19/20] block: Minimize raw use of bds->total_sectors, Eric Blake, 2017/05/10