diff options
author | Eric Blake <eblake@redhat.com> | 2021-12-03 17:15:27 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2022-03-07 19:23:36 -0600 |
commit | 087f2fb3763fd85082fb09ba03ec66ff1d3f5cd7 (patch) | |
tree | 6733bafddd76310549309aa16831409d506a7d3b /page-vary-common.c | |
parent | 314b9026212f1841a380ae8dbd1166288dff9712 (diff) |
qemu-io: Utilize 64-bit status during map
The block layer has supported 64-bit block status from drivers since
commit 86a3d5c688 ("block: Add .bdrv_co_block_status() callback",
v2.12) and friends, with individual driver callbacks responsible for
capping things where necessary. Artificially capping things below 2G
in the qemu-io 'map' command, added in commit d6a644bbfe ("block: Make
bdrv_is_allocated() byte-based", v2.10) is thus no longer necessary.
One way to test this is with qemu-nbd as server on a raw file larger
than 4G (the entire file should show as allocated), plus 'qemu-io -f
raw -c map nbd://localhost --trace=nbd_\*' as client. Prior to this
patch, the NBD_CMD_BLOCK_STATUS requests are fragmented at 0x7ffffe00
distances; with this patch, the fragmenting changes to 0x7fffffff
(since the NBD protocol is currently still limited to 32-bit
transactions - see block/nbd.c:nbd_client_co_block_status). Then in
later patches, once I add an NBD extension for a 64-bit block status,
the same map command completes with just one NBD_CMD_BLOCK_STATUS.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20211203231539.3900865-3-eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Diffstat (limited to 'page-vary-common.c')
0 files changed, 0 insertions, 0 deletions