qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] block: allocate aligned write buffer for 'truncate -m full'


From: Andrey Drobyshev
Subject: Re: [PATCH] block: allocate aligned write buffer for 'truncate -m full'
Date: Thu, 11 Jan 2024 14:53:18 +0200
User-agent: Mozilla Thunderbird

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.drobyshev@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 <den@openvz.org>

Ping



reply via email to

[Prev in Thread] Current Thread [Next in Thread]