]> git.proxmox.com Git - mirror_qemu.git/commit - block/mirror.c
block: Make bdrv_is_allocated_above() byte-based
authorEric Blake <eblake@redhat.com>
Fri, 7 Jul 2017 12:44:59 +0000 (07:44 -0500)
committerKevin Wolf <kwolf@redhat.com>
Mon, 10 Jul 2017 11:18:07 +0000 (13:18 +0200)
commit51b0a488882328f8f02519bb47ca7e0e7fbe12ff
tree36257cf2221ea7e4e54ab7deae446d02c46f326c
parentc00716beb30ba996bd6fdfd5f41bb07e4414144f
block: Make bdrv_is_allocated_above() byte-based

We are gradually moving away from sector-based interfaces, towards
byte-based.  In the common case, allocation is unlikely to ever use
values that are not naturally sector-aligned, but it is possible
that byte-based values will let us be more precise about allocation
at the end of an unaligned file that can do byte-based access.

Changing the signature of the function to use int64_t *pnum ensures
that the compiler enforces that all callers are updated.  For now,
the io.c layer still assert()s that all callers are sector-aligned,
but that can be relaxed when a later patch implements byte-based
block status.  Therefore, for the most part this patch is just the
addition of scaling at the callers followed by inverse scaling at
bdrv_is_allocated().  But some code, particularly stream_run(),
gets a lot simpler because it no longer has to mess with sectors.
Leave comments where we can further simplify by switching to
byte-based iterations, once later patches eliminate the need for
sector-aligned operations.

For ease of review, bdrv_is_allocated() was tackled separately.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/commit.c
block/io.c
block/mirror.c
block/replication.c
block/stream.c
include/block/block.h
qemu-img.c