summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-04-10 13:16:19 +0100
committerRichard Jones <rjones@redhat.com>2010-04-12 19:04:01 +0100
commitb15faa431906acfee94245c2d951ea285eaf0d0b (patch)
tree2977fd4abd63a09047428e51e3cb6b8fbf19e45c
parent1dfa17eb370d01ac7fcc6948b5e0fd55a17a4816 (diff)
downloadlibguestfs-b15faa431906acfee94245c2d951ea285eaf0d0b.tar.gz
libguestfs-b15faa431906acfee94245c2d951ea285eaf0d0b.tar.xz
libguestfs-b15faa431906acfee94245c2d951ea285eaf0d0b.zip
daemon: Make the RUN_PARTED macro take an error statement.
This allows us to make the RUN_PARTED macro do something else along the error path, other than just returning -1. (cherry picked from commit 440ad646cdf31bdb5ad2bc92fc51fa6df3fb9c63)
-rw-r--r--daemon/parted.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/daemon/parted.c b/daemon/parted.c
index 99417c23..ff6cca11 100644
--- a/daemon/parted.c
+++ b/daemon/parted.c
@@ -55,7 +55,7 @@ recover_blkrrpart (const char *device, const char *err)
return 0;
}
-#define RUN_PARTED(device,...) \
+#define RUN_PARTED(error,device,...) \
do { \
int r; \
char *err; \
@@ -66,7 +66,7 @@ recover_blkrrpart (const char *device, const char *err)
if (recover_blkrrpart ((device), err) == -1) { \
reply_with_error ("%s: parted: %s: %s", __func__, (device), err); \
free (err); \
- return -1; \
+ error; \
} \
} \
\
@@ -107,7 +107,7 @@ do_part_init (const char *device, const char *parttype)
return -1;
}
- RUN_PARTED (device, "mklabel", parttype, NULL);
+ RUN_PARTED (return -1, device, "mklabel", parttype, NULL);
udev_settle ();
@@ -151,7 +151,7 @@ do_part_add (const char *device, const char *prlogex,
* name_ to prlogex, eg. "primary". I would essentially describe
* this as a bug in the parted mkpart command.
*/
- RUN_PARTED (device, "mkpart", prlogex, startstr, endstr, NULL);
+ RUN_PARTED (return -1, device, "mkpart", prlogex, startstr, endstr, NULL);
udev_settle ();
@@ -183,7 +183,8 @@ do_part_disk (const char *device, const char *parttype)
endstr = "-1s";
}
- RUN_PARTED (device,
+ RUN_PARTED (return -1,
+ device,
"mklabel", parttype,
/* See comment about about the parted mkpart command. */
"mkpart", STREQ (parttype, "gpt") ? "p1" : "primary",
@@ -201,7 +202,8 @@ do_part_set_bootable (const char *device, int partnum, int bootable)
snprintf (partstr, sizeof partstr, "%d", partnum);
- RUN_PARTED (device, "set", partstr, "boot", bootable ? "on" : "off", NULL);
+ RUN_PARTED (return -1,
+ device, "set", partstr, "boot", bootable ? "on" : "off", NULL);
udev_settle ();
@@ -215,7 +217,7 @@ do_part_set_name (const char *device, int partnum, const char *name)
snprintf (partstr, sizeof partstr, "%d", partnum);
- RUN_PARTED (device, "name", partstr, name, NULL);
+ RUN_PARTED (return -1, device, "name", partstr, name, NULL);
udev_settle ();