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

Reply via email to