[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 18/20] block: Make bdrv_is_allocated() byte-b
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH v3 18/20] block: Make bdrv_is_allocated() byte-based |
Date: |
Wed, 28 Jun 2017 11:14:39 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Eric Blake <address@hidden> wrote:
> 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
> on input and that *pnum is sector-aligned on return to the caller,
> but that can be relaxed when a later patch implements byte-based
> block status. Therefore, this code adds usages like
> DIV_ROUND_UP(,BDRV_SECTOR_SIZE) to callers that still want aligned
> values, where the call might reasonbly give non-aligned results
> in the future; on the other hand, no rounding is needed for callers
> that should just continue to work with byte alignment.
>
> 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 bdrv_commit(), gets a lot simpler because it
> no longer has to mess with sectors; also, it is now possible to pass
> NULL if the caller does not care how much of the image is allocated
> beyond the initial offset.
>
> For ease of review, bdrv_is_allocated_above() will be tackled
> separately.
>
> Signed-off-by: Eric Blake <address@hidden>
> Reviewed-by: John Snow <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
- [Qemu-devel] [PATCH v3 14/20] backup: Switch BackupBlockJob to byte-based, (continued)
- [Qemu-devel] [PATCH v3 14/20] backup: Switch BackupBlockJob to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 15/20] backup: Switch block_backup.h to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 16/20] backup: Switch backup_do_cow() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 17/20] backup: Switch backup_run() to byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 18/20] block: Make bdrv_is_allocated() byte-based, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 19/20] block: Minimize raw use of bds->total_sectors, Eric Blake, 2017/06/27
- [Qemu-devel] [PATCH v3 20/20] block: Make bdrv_is_allocated_above() byte-based, Eric Blake, 2017/06/27