• E
    block: Make bdrv_is_allocated_above() byte-based · 51b0a488
    Eric Blake 提交于
    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: NEric Blake <eblake@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    51b0a488
replication.c 20.9 KB