libxl: fixup error handling in libxl_send_trigger
authorIan Campbell <ian.campbell@citrix.com>
Wed, 4 Apr 2012 15:10:18 +0000 (16:10 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 4 Apr 2012 15:10:18 +0000 (16:10 +0100)
xc_domain_send_trigger returns -1 and sets errno on failure so use
LIBXL__LOG_ERRNO not LIBXL__LOG_ERRNOVAL(rc).

Change the default case of the switch to set rc=-1,errno=EINVAL too.

Also we weren't actually returning the error code we'd decided on.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c

index 53443665d4211789e3488b68be5135960116829f..7a5452423719df30685236b1df52372eb32dde9c 100644 (file)
@@ -3309,18 +3309,19 @@ int libxl_send_trigger(libxl_ctx *ctx, uint32_t domid,
         rc = 0;
         break;
     default:
-        rc = EINVAL;
+        rc = -1;
+        errno = EINVAL;
         break;
     }
 
     if (rc != 0) {
-        LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc,
-                            "Send trigger '%s' failed",
-                            libxl_trigger_to_string(trigger));
+        LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
+                         "Send trigger '%s' failed",
+                         libxl_trigger_to_string(trigger));
         rc = ERROR_FAIL;
     }
 
-    return 0;
+    return rc;
 }
 
 int libxl_send_sysrq(libxl_ctx *ctx, uint32_t domid, char sysrq)