[Libguestfs] [PATCH 1/2] daemon: allow to change the labels of swap partitions

Richard W.M. Jones rjones at redhat.com
Wed Dec 7 11:54:35 UTC 2016


On Fri, Nov 25, 2016 at 11:22:26AM +0100, Pino Toscano wrote:
> ---
>  daemon/daemon.h      |  1 +
>  daemon/labels.c      |  3 +++
>  daemon/swap.c        | 21 +++++++++++++++++++++
>  generator/actions.ml |  4 ++++
>  4 files changed, 29 insertions(+)
> 
> diff --git a/daemon/daemon.h b/daemon/daemon.h
> index 79a5288..2379e31 100644
> --- a/daemon/daemon.h
> +++ b/daemon/daemon.h
> @@ -254,6 +254,7 @@ extern int64_t ntfs_minimum_size (const char *device);
>  
>  /*-- in swap.c --*/
>  extern int swap_set_uuid (const char *device, const char *uuid);
> +extern int swap_set_label (const char *device, const char *label);
>  
>  /* ordinary daemon functions use these to indicate errors
>   * NB: you don't need to prefix the string with the current command,
> diff --git a/daemon/labels.c b/daemon/labels.c
> index 20f27cb..aaa3eaf 100644
> --- a/daemon/labels.c
> +++ b/daemon/labels.c
> @@ -85,6 +85,9 @@ do_set_label (const mountable_t *mountable, const char *label)
>    else if (STREQ (vfs_type, "xfs"))
>      r = xfslabel (mountable->device, label);
>  
> +  else if (STREQ (vfs_type, "swap"))
> +    r = swap_set_label (mountable->device, label);
> +
>    else
>      NOT_SUPPORTED (-1, "don't know how to set the label for '%s' filesystems",
>                     vfs_type);
> diff --git a/daemon/swap.c b/daemon/swap.c
> index 9d7839e..028bc1e 100644
> --- a/daemon/swap.c
> +++ b/daemon/swap.c
> @@ -239,3 +239,24 @@ swap_set_uuid (const char *device, const char *uuid)
>  
>    return 0;
>  }
> +
> +int
> +swap_set_label (const char *device, const char *label)
> +{
> +  int r;
> +  CLEANUP_FREE char *err = NULL;
> +
> +  if (strlen (label) > SWAP_LABEL_MAX) {
> +    reply_with_error ("%s: Linux swap labels are limited to %d bytes",
> +                      label, SWAP_LABEL_MAX);
> +    return -1;
> +  }
> +
> +  r = command (NULL, &err, str_swaplabel, "-L", label, device, NULL);
> +  if (r == -1) {
> +    reply_with_error ("%s", err);
> +    return -1;
> +  }
> +
> +  return 0;
> +}
> diff --git a/generator/actions.ml b/generator/actions.ml
> index 43de38b..5e0356f 100644
> --- a/generator/actions.ml
> +++ b/generator/actions.ml
> @@ -10304,6 +10304,10 @@ when trying to set the label.
>  
>  The label is limited to 11 bytes.
>  
> +=item swap
> +
> +The label is limited to 16 bytes.
> +
>  =back
>  
>  If there is no support for changing the label
> -- 
> 2.7.4
> 
> _______________________________________________
> Libguestfs mailing list
> Libguestfs at redhat.com
> https://www.redhat.com/mailman/listinfo/libguestfs

Obvious improvement, ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list