xl: Return proper error codes for block-attach and block-detach
authorGeorge Dunlap <george.dunlap@eu.citrix.com>
Wed, 12 Nov 2014 17:31:33 +0000 (17:31 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Tue, 25 Nov 2014 14:04:04 +0000 (14:04 +0000)
Return proper error codes on failure so that scripts can tell whether
the command completed properly or not.

This is not a proper fix, since it fails to call
libxl_device_disk_dispose() on the error path.  But a proper fix
requires some refactoring, so given where we are in the release
process, it's better to have a fix that is simple and obvious, and do
the refactoring once the next development window opens up.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/xl_cmdimpl.c

index 9afef3fe05bf164c830a3ba1b6395b766a487a8f..0e754e70bc53808d6f29d30405fdb38f1831a6c6 100644 (file)
@@ -6383,6 +6383,7 @@ int main_blockattach(int argc, char **argv)
 
     if (libxl_device_disk_add(ctx, fe_domid, &disk, 0)) {
         fprintf(stderr, "libxl_device_disk_add failed.\n");
+        return 1;
     }
     return 0;
 }
@@ -6444,6 +6445,7 @@ int main_blockdetach(int argc, char **argv)
     rc = libxl_device_disk_remove(ctx, domid, &disk, 0);
     if (rc) {
         fprintf(stderr, "libxl_device_disk_remove failed.\n");
+        return 1;
     }
     libxl_device_disk_dispose(&disk);
     return rc;