[Qemu-devel] [PATCH] block: Make block error codes consistent

Wensheng Tang posted 1 patch 4 years, 11 months ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190512154620.84143-1-sp3478@gmail.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Max Reitz <mreitz@redhat.com>
block.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[Qemu-devel] [PATCH] block: Make block error codes consistent
Posted by Wensheng Tang 4 years, 11 months ago
(The last email does not include signed-off-by line. Please ignoreit)

We should keep the error handling consistent. ENOMEDIUM is more meaningful than ENOENT a when driver cannot be loaded.

Signed-off-by: Wensheng Tang <sp3478@gmail.com>
---
 block.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/block.c b/block.c
index 5c2c6aa..6685be7 100644
--- a/block.c
+++ b/block.c
@@ -770,7 +770,7 @@ static int find_image_format(BlockBackend *file, const char *filename,
     if (!drv) {
         error_setg(errp, "Could not determine image format: No compatible "
                    "driver found");
-        ret = -ENOENT;
+        ret = -ENOMEDIUM;
     }
     *pdrv = drv;
     return ret;
@@ -1619,7 +1619,7 @@ static int bdrv_fill_options(QDict **options, const char *filename,
         drv = bdrv_find_format(drvname);
         if (!drv) {
             error_setg(errp, "Unknown driver '%s'", drvname);
-            return -ENOENT;
+            return -ENOMEDIUM;
         }
         /* If the user has explicitly specified the driver, this choice should
          * override the BDRV_O_PROTOCOL flag */
@@ -1655,7 +1655,7 @@ static int bdrv_fill_options(QDict **options, const char *filename,
         if (filename) {
             drv = bdrv_find_protocol(filename, parse_filename, errp);
             if (!drv) {
-                return -EINVAL;
+                return -ENOMEDIUM;
             }
 
             drvname = drv->format_name;
-- 
2.20.1 (Apple Git-117)


Re: [Qemu-devel] [Qemu-block] [PATCH] block: Make block error codes consistent
Posted by John Snow 4 years, 11 months ago

On 5/12/19 11:46 AM, Wensheng Tang wrote:
> (The last email does not include signed-off-by line. Please ignoreit)
> 
> We should keep the error handling consistent. ENOMEDIUM is more meaningful than ENOENT a when driver cannot be loaded.
> 

Consistent with what?

Why is it more meaningful?

I might argue that any one of ENODEV, EINVAL, ENOSYS, ENOTSUP, or
EPROTONOSUPPORT might be more meaningful than ENOENT or ENOMEDIUM, but
it depends on what people expect and why.

> Signed-off-by: Wensheng Tang <sp3478@gmail.com>
> ---
>  block.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/block.c b/block.c
> index 5c2c6aa..6685be7 100644
> --- a/block.c
> +++ b/block.c
> @@ -770,7 +770,7 @@ static int find_image_format(BlockBackend *file, const char *filename,
>      if (!drv) {
>          error_setg(errp, "Could not determine image format: No compatible "
>                     "driver found");
> -        ret = -ENOENT;
> +        ret = -ENOMEDIUM;
>      }
>      *pdrv = drv;
>      return ret;
> @@ -1619,7 +1619,7 @@ static int bdrv_fill_options(QDict **options, const char *filename,
>          drv = bdrv_find_format(drvname);
>          if (!drv) {
>              error_setg(errp, "Unknown driver '%s'", drvname);
> -            return -ENOENT;
> +            return -ENOMEDIUM;
>          }
>          /* If the user has explicitly specified the driver, this choice should
>           * override the BDRV_O_PROTOCOL flag */
> @@ -1655,7 +1655,7 @@ static int bdrv_fill_options(QDict **options, const char *filename,
>          if (filename) {
>              drv = bdrv_find_protocol(filename, parse_filename, errp);
>              if (!drv) {
> -                return -EINVAL;
> +                return -ENOMEDIUM;
>              }
>  
>              drvname = drv->format_name;
>