mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
file-posix, gluster: Handle zero block status hint better
Although the previous patch to change 'bool want_zero' into a bitmask made no semantic change, it is now time to differentiate. When the caller specifically wants to know what parts of the file read as zero, we need to use lseek and actually reporting holes, rather than short-circuiting and advertising full allocation. This change will be utilized in later patches to let mirroring optimize for the case when the destination already reads as zeroes. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-ID: <20250509204341.3553601-17-eblake@redhat.com>
This commit is contained in:
parent
c33159dec7
commit
a6a0a7fb0e
2 changed files with 3 additions and 2 deletions
|
@ -3289,7 +3289,8 @@ static int coroutine_fn raw_co_block_status(BlockDriverState *bs,
|
|||
return ret;
|
||||
}
|
||||
|
||||
if (mode != BDRV_WANT_PRECISE) {
|
||||
if (!(mode & BDRV_WANT_ZERO)) {
|
||||
/* There is no backing file - all bytes are allocated in this file. */
|
||||
*pnum = bytes;
|
||||
*map = offset;
|
||||
*file = bs;
|
||||
|
|
|
@ -1478,7 +1478,7 @@ static int coroutine_fn qemu_gluster_co_block_status(BlockDriverState *bs,
|
|||
return ret;
|
||||
}
|
||||
|
||||
if (mode != BDRV_WANT_PRECISE) {
|
||||
if (!(mode & BDRV_WANT_ZERO)) {
|
||||
*pnum = bytes;
|
||||
*map = offset;
|
||||
*file = bs;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue