On 1/11/24 14:53, Andrey Drobyshev wrote: > On 12/11/23 13:27, Denis V. Lunev wrote: >> On 12/11/23 11:55, Andrey Drobyshev wrote: >>> In case we're truncating an image opened with O_DIRECT, we might get >>> -EINVAL on write with unaligned buffer. In particular, when running >>> iotests/298 with '-nocache' we get: >>> >>> qemu-io: Failed to resize underlying file: Could not write zeros for >>> preallocation: Invalid argument >>> >>> Let's just allocate the buffer using qemu_blockalign0() instead. >>> >>> Signed-off-by: Andrey Drobyshev <andrey.drobys...@virtuozzo.com> >>> --- >>> block/file-posix.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/block/file-posix.c b/block/file-posix.c >>> index b862406c71..cee8de510b 100644 >>> --- a/block/file-posix.c >>> +++ b/block/file-posix.c >>> @@ -2354,7 +2354,7 @@ static int handle_aiocb_truncate(void *opaque) >>> goto out; >>> } >>> - buf = g_malloc0(65536); >>> + buf = qemu_blockalign0(aiocb->bs, 65536); >>> seek_result = lseek(fd, current_length, SEEK_SET); >>> if (seek_result < 0) { >>> @@ -2413,7 +2413,7 @@ out: >>> } >>> } >>> - g_free(buf); >>> + qemu_vfree(buf); >>> return result; >>> } >>> >> Reviewed-by: Denis V. Lunev <d...@openvz.org> > > Ping
Ping