qemu-devel
[Top][All Lists]
Advanced

[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;
    }







reply via email to

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