diff mbox

[14/20] vvfat: correctly propagate errors

Message ID 1391939335-31580-15-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Feb. 9, 2014, 9:48 a.m. UTC
Before:
    $ ./qemu-io-old
    qemu-io-old> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu
    Valid FAT types are only 12, 16 and 32
    qemu-io-old: can't open device (null): Could not open image: Invalid argument

After:
    $ ./qemu-io
    qemu-io> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu
    qemu-io: can't open device (null): Valid FAT types are only 12, 16 and 32

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 block/vvfat.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Comments

Fam Zheng Feb. 10, 2014, 8:16 a.m. UTC | #1
On Sun, 02/09 10:48, Paolo Bonzini wrote:
> Before:
>     $ ./qemu-io-old
>     qemu-io-old> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu
>     Valid FAT types are only 12, 16 and 32
>     qemu-io-old: can't open device (null): Could not open image: Invalid argument
> 
> After:
>     $ ./qemu-io
>     qemu-io> open -r -o driver=vvfat,fat-type=24,dir=i386-softmmu
>     qemu-io: can't open device (null): Valid FAT types are only 12, 16 and 32
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  block/vvfat.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/block/vvfat.c b/block/vvfat.c
> index 664941c..7c3521a 100644
> --- a/block/vvfat.c
> +++ b/block/vvfat.c
> @@ -1086,16 +1086,14 @@ DLOG(if (stderr == NULL) {
>      opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
>      qemu_opts_absorb_qdict(opts, options, &local_err);
>      if (error_is_set(&local_err)) {
> -        qerror_report_err(local_err);
> -        error_free(local_err);
> +        error_propagate(errp, local_err);
>          ret = -EINVAL;
>          goto fail;
>      }
>  
>      dirname = qemu_opt_get(opts, "dir");
>      if (!dirname) {
> -        qerror_report(ERROR_CLASS_GENERIC_ERROR, "vvfat block driver requires "
> -                      "a 'dir' option");
> +        error_setg(errp, "vvfat block driver requires a 'dir' option");
>          ret = -EINVAL;
>          goto fail;
>      }
> @@ -1135,8 +1133,7 @@ DLOG(if (stderr == NULL) {
>      case 12:
>          break;
>      default:
> -        qerror_report(ERROR_CLASS_GENERIC_ERROR, "Valid FAT types are only "
> -                      "12, 16 and 32");
> +        error_setg(errp, "Valid FAT types are only 12, 16 and 32");
>          ret = -EINVAL;
>          goto fail;
>      }
> -- 
> 1.8.5.3
> 
> 

Reviewed-by: Fam Zheng <famz@redhat.com>
diff mbox

Patch

diff --git a/block/vvfat.c b/block/vvfat.c
index 664941c..7c3521a 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -1086,16 +1086,14 @@  DLOG(if (stderr == NULL) {
     opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
     qemu_opts_absorb_qdict(opts, options, &local_err);
     if (error_is_set(&local_err)) {
-        qerror_report_err(local_err);
-        error_free(local_err);
+        error_propagate(errp, local_err);
         ret = -EINVAL;
         goto fail;
     }
 
     dirname = qemu_opt_get(opts, "dir");
     if (!dirname) {
-        qerror_report(ERROR_CLASS_GENERIC_ERROR, "vvfat block driver requires "
-                      "a 'dir' option");
+        error_setg(errp, "vvfat block driver requires a 'dir' option");
         ret = -EINVAL;
         goto fail;
     }
@@ -1135,8 +1133,7 @@  DLOG(if (stderr == NULL) {
     case 12:
         break;
     default:
-        qerror_report(ERROR_CLASS_GENERIC_ERROR, "Valid FAT types are only "
-                      "12, 16 and 32");
+        error_setg(errp, "Valid FAT types are only 12, 16 and 32");
         ret = -EINVAL;
         goto fail;
     }