On Tue, Jan 13, 2015 at 10:38:10AM +0100, Pino Toscano wrote:
If specified, pass the label for the new filesystem directly to the mkfs (or mkfs_btrfs) call.
This saves one set_label call, mostly. --- format/format.c | 10 ++++++---- make-fs/make-fs.c | 28 +++++++++++++++++----------- 2 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/format/format.c b/format/format.c index 4e6069f..cc371ab 100644 --- a/format/format.c +++ b/format/format.c @@ -434,13 +434,15 @@ do_format (void) }
if (filesystem) { - if (guestfs_mkfs_opts (g, filesystem, dev, -1) == -1) - exit (EXIT_FAILURE); + struct guestfs_mkfs_opts_argv optargs = { .bitmask = 0 };
if (label) { - if (guestfs_set_label (g, dev, label) == -1) - exit (EXIT_FAILURE); + optargs.label = label; + optargs.bitmask |= GUESTFS_MKFS_OPTS_LABEL_BITMASK; } + + if (guestfs_mkfs_opts_argv (g, filesystem, dev, &optargs) == -1) + exit (EXIT_FAILURE);
if (free_dev) diff --git a/make-fs/make-fs.c b/make-fs/make-fs.c index 841c202..14729ad 100644 --- a/make-fs/make-fs.c +++ b/make-fs/make-fs.c @@ -755,9 +755,15 @@ do_make_fs (const char *input, const char *output_str) /* Create the filesystem. */ if (STRNEQ (type, "btrfs")) { int r; + struct guestfs_mkfs_opts_argv optargs = { .bitmask = 0 }; + + if (label) { + optargs.label = label; + optargs.bitmask |= GUESTFS_MKFS_OPTS_LABEL_BITMASK; + }
guestfs_push_error_handler (g, NULL, NULL); - r = guestfs_mkfs (g, type, dev); + r = guestfs_mkfs_opts_argv (g, type, dev, &optargs); guestfs_pop_error_handler (g);
if (r == -1) { @@ -774,17 +780,17 @@ do_make_fs (const char *input, const char *output_str) } else { const char *devs[] = { dev, NULL }; + struct guestfs_mkfs_btrfs_argv optargs = { .bitmask = 0 }; + + optargs.datatype = "single"; + optargs.metadata = "single"; + optargs.bitmask |= GUESTFS_MKFS_BTRFS_DATATYPE_BITMASK | GUESTFS_MKFS_BTRFS_METADATA_BITMASK; + if (label) { + optargs.label = label; + optargs.bitmask |= GUESTFS_MKFS_BTRFS_LABEL_BITMASK; + }
- if (guestfs_mkfs_btrfs (g, (char **) devs, - GUESTFS_MKFS_BTRFS_DATATYPE, "single", - GUESTFS_MKFS_BTRFS_METADATA, "single", - -1) == -1) - return -1; - } - - /* Set label. */ - if (label) { - if (guestfs_set_label (g, dev, label) == -1) + if (guestfs_mkfs_btrfs_argv (g, (char **) devs, &optargs) == -1) return -1; }
-- 1.9.3
ACK. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top