diff mbox

iscsi: add error handling for qmp_query_uuid

Message ID 1383610089-12168-1-git-send-email-akong@redhat.com
State New
Headers show

Commit Message

Amos Kong Nov. 5, 2013, 12:08 a.m. UTC
We can't assume that qmp_query_uuid() always returns available value.

Signed-off-by: Amos Kong <akong@redhat.com>
---
 block/iscsi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Paolo Bonzini Nov. 5, 2013, 9:03 a.m. UTC | #1
Il 05/11/2013 01:08, Amos Kong ha scritto:
> We can't assume that qmp_query_uuid() always returns available value.
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
>  block/iscsi.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/block/iscsi.c b/block/iscsi.c
> index a2a961e..1fc1da4 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -1059,6 +1059,7 @@ static char *parse_initiator_name(const char *target)
>      const char *name;
>      char *iscsi_name;
>      UuidInfo *uuid_info;
> +    Error *errp = NULL;
>  
>      list = qemu_find_opts("iscsi");
>      if (list) {
> @@ -1074,8 +1075,10 @@ static char *parse_initiator_name(const char *target)
>          }
>      }
>  
> -    uuid_info = qmp_query_uuid(NULL);
> -    if (strcmp(uuid_info->UUID, UUID_NONE) == 0) {
> +    uuid_info = qmp_query_uuid(&errp);
> +    if (error_is_set(&errp)) {
> +        name = qemu_get_vm_name();
> +    } else if (strcmp(uuid_info->UUID, UUID_NONE) == 0) {
>          name = qemu_get_vm_name();
>      } else {
>          name = uuid_info->UUID;
> 

Does this fix an actual bug?  qmp_query_uuid will never fail, it just
has an Error* argument to comply with the requirements of the code
generator.

Paolo
Amos Kong Nov. 5, 2013, 3:05 p.m. UTC | #2
On Tue, Nov 05, 2013 at 10:03:10AM +0100, Paolo Bonzini wrote:
> Il 05/11/2013 01:08, Amos Kong ha scritto:
> > We can't assume that qmp_query_uuid() always returns available value.
> > 
> > Signed-off-by: Amos Kong <akong@redhat.com>
> > ---
> >  block/iscsi.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/block/iscsi.c b/block/iscsi.c
> > index a2a961e..1fc1da4 100644
> > --- a/block/iscsi.c
> > +++ b/block/iscsi.c
> > @@ -1059,6 +1059,7 @@ static char *parse_initiator_name(const char *target)
> >      const char *name;
> >      char *iscsi_name;
> >      UuidInfo *uuid_info;
> > +    Error *errp = NULL;
> >  
> >      list = qemu_find_opts("iscsi");
> >      if (list) {
> > @@ -1074,8 +1075,10 @@ static char *parse_initiator_name(const char *target)
> >          }
> >      }
> >  
> > -    uuid_info = qmp_query_uuid(NULL);
> > -    if (strcmp(uuid_info->UUID, UUID_NONE) == 0) {
> > +    uuid_info = qmp_query_uuid(&errp);
> > +    if (error_is_set(&errp)) {
> > +        name = qemu_get_vm_name();
> > +    } else if (strcmp(uuid_info->UUID, UUID_NONE) == 0) {
> >          name = qemu_get_vm_name();
> >      } else {
> >          name = uuid_info->UUID;
> > 
> 
> Does this fix an actual bug?

No a bug fixing.

> qmp_query_uuid will never fail, it just
> has an Error* argument to comply with the requirements of the code
> generator.

Yes, this patch isn't necessary for current qmp_query_uuid()
We can ignore this patch.
 
> Paolo
diff mbox

Patch

diff --git a/block/iscsi.c b/block/iscsi.c
index a2a961e..1fc1da4 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -1059,6 +1059,7 @@  static char *parse_initiator_name(const char *target)
     const char *name;
     char *iscsi_name;
     UuidInfo *uuid_info;
+    Error *errp = NULL;
 
     list = qemu_find_opts("iscsi");
     if (list) {
@@ -1074,8 +1075,10 @@  static char *parse_initiator_name(const char *target)
         }
     }
 
-    uuid_info = qmp_query_uuid(NULL);
-    if (strcmp(uuid_info->UUID, UUID_NONE) == 0) {
+    uuid_info = qmp_query_uuid(&errp);
+    if (error_is_set(&errp)) {
+        name = qemu_get_vm_name();
+    } else if (strcmp(uuid_info->UUID, UUID_NONE) == 0) {
         name = qemu_get_vm_name();
     } else {
         name = uuid_info->UUID;