Am 19.11.25 um 4:40 PM schrieb Fiona Ebner:
> Am 07.10.25 um 6:07 PM schrieb Stefan Hajnoczi:
>> v2:
>> - Simplify condition to if (!s->needs_alignment) in patch 1 [Vladimir]
>>
>> This series fixes a bug I introduced in commit 5634622bcb33 ("file-posix:
>> allow
>> BLKZEROOUT with -t writeback"). The Linux fallocate(2) and ioctl(BLKZEROOUT)
>> syscalls require logical block size alignment of the offset and length, even
>> when the file is opened in buffered I/O mode where read/write operations do
>> not
>> require alignment.
>>
>> The fix is to populate the pwrite_zeroes_alignment block limits field and to
>> use that limit in create_file_fallback_zero_first_sector().
>>
>> One issue I want to raise is that pwrite_zeroes_alignment is an "optimal
>> alignment" hint. Hence create_file_fallback_zero_first_sector() had to be
>> modified to honor the limit explicitly. The block layer doesn't automatically
>> apply padding in order to align requests. This is different from how QEMU's
>> block layer pwrite/pread works, where it does automatically apply padding and
>> read/modify/write as necessary. If you want consistency, please let me know.
>>
>> Stefan Hajnoczi (3):
>> file-posix: populate pwrite_zeroes_alignment
>> block: use pwrite_zeroes_alignment when writing first sector
>> iotests: add Linux loop device image creation test
>>
>> include/system/block-backend-io.h | 1 +
>> block.c | 3 +-
>> block/block-backend.c | 11 ++++
>> block/file-posix.c | 16 +++++
>> tests/qemu-iotests/tests/loop-create-file | 59 +++++++++++++++++++
>> tests/qemu-iotests/tests/loop-create-file.out | 8 +++
>> 6 files changed, 97 insertions(+), 1 deletion(-)
>> create mode 100755 tests/qemu-iotests/tests/loop-create-file
>> create mode 100644 tests/qemu-iotests/tests/loop-create-file.out
>>
>
> Thank you for the fix!
>
> Tested-by: Fiona Ebner <[email protected]>
> Reviewed-by: Fiona Ebner <[email protected]>
Oh, and CC qemu-stable, because 5634622bcb33 ("file-posix: allow
BLKZEROOUT with -t writeback") is in 10.1.