qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Qemu-trivial] [PATCH] block: output more error message


From: Kevin Wolf
Subject: Re: [Qemu-devel] [Qemu-trivial] [PATCH] block: output more error messages if failed to create temporary snapshot
Date: Wed, 05 Sep 2012 12:35:58 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120605 Thunderbird/13.0

Am 05.09.2012 11:40, schrieb Stefan Hajnoczi:
> On Wed, Sep 05, 2012 at 04:26:14PM +0800, address@hidden wrote:
>> From: Dunrong Huang <address@hidden>
>>
>> If we failed to create temporary snapshot, the error message did not match
>> with the error, for example:
>>
>> $ TMPDIR=/tmp/bad_path qemu-system-x86_64 -enable-kvm debian.qcow2 -snapshot
>> qemu-system-x86_64: -enable-kvm: could not open disk image 
>> /home/mathslinux/Images/debian.qcow2: No such file or directory
>>
>> Indeed, the file which cant be created is /tmp/bad_path/vl.xxxxxx,  not
>> debian.qcow2. so the error message makes users feel confused.
>>
>> Signed-off-by: Dunrong Huang <address@hidden>
>> ---
>>  block.c | 2 ++
>>  1 个文件被修改,插入 2 行(+)
>>
>> diff --git a/block.c b/block.c
>> index 470bdcc..c9e5140 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -434,6 +434,8 @@ int get_tmp_filename(char *filename, int size)
>>      }
>>      fd = mkstemp(filename);
>>      if (fd < 0 || close(fd)) {
>> +        fprintf(stderr, "Could not create temporary snapshot in %s 
>> directory: "
>> +                "%s\n", tmpdir, strerror(errno));
> 
> The error message is fine for fd < 0 but not for close(0) != 0.  Also,
> close(2) is allowed to change errno (even on success) so this is not
> portable and could clobber the errno value.

I don't think this error message is fine in get_tmp_filename(). This
function happens to be used for temporary snapshots, but this is not
part of its interface. Today it's also used in vvfat and there the
message would only be confusing. Other use cases may be introduced in
the future.

If you want to introduce an error message, do it in the caller.

Kevin



reply via email to

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