[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Abnormal function exit message in Qemu block drivers co
From: |
Cao,Bing Bu |
Subject: |
Re: [Qemu-devel] Abnormal function exit message in Qemu block drivers code |
Date: |
Thu, 27 Oct 2011 16:05:57 +0800 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110927 Red Hat/3.1.15-1.el6_1 Thunderbird/3.1.15 |
On 10/27/2011 02:16 PM, shu ming wrote:
Hi,
After reading the block driver code in, it was found that the error
exit code behaved in different ways. Here are some examples. It
seems that way 3 is a better way to log the error message. In fact,
It is pretty important for a administrator to know what is going on
and be informed the error when that happens. I believe we should
convert all the error exit code to way 3 gradually and make all the
new code to follow an unique standard.
Further more, really, some errors can be ignored while others can
not. So we can have a more flexible function to classify the level of
the error message like
error_report(log_level, "string format", string);
1)The error code exited silently.
case QCOW2_EXT_MAGIC_BACKING_FORMAT:
if (ext.len >= sizeof(bs->backing_format)) {
fprintf(stderr, "ERROR: ext_backing_format: len=%u too
large"
" (>=%zu)\n",
ext.len, sizeof(bs->backing_format));
return 2;
}
The example of the first way looks like not correct.
case QCOW2_EXT_MAGIC_BACKING_FORMAT:
if (ext.len >= sizeof(bs->backing_format)) {
- fprintf(stderr, "ERROR: ext_backing_format: len=%u too large"
- " (>=%zu)\n",
- ext.len, sizeof(bs->backing_format));
return 2;
}
2) fprintf() to emit the error message
case QCOW2_EXT_MAGIC_BACKING_FORMAT:
if (ext.len >= sizeof(bs->backing_format)) {
fprintf(stderr, "ERROR: ext_backing_format: len=%u too
large"
" (>=%zu)\n",
ext.len, sizeof(bs->backing_format));
return 2;
3) A error_report() function to emit the error message.
/* Find driver and parse its options */
drv = bdrv_find_format(fmt);
if (!drv) {
error_report("Unknown file format '%s'", fmt);
ret = -EINVAL;
goto out;
}