[Libguestfs] [PATCH] listfs: ignore the default btrfs subvolume

Cedric Bosdonnat cbosdonnat at suse.com
Thu Feb 25 18:18:55 UTC 2016


The patch does the trick for virt-builder on the images I have here. I
hope I'm not overlooking some potential side effects.

Weak ACK from me.

--
Cedric

On Thu, 2016-02-25 at 17:50 +0100, Pino Toscano wrote:
> When listing the subvolumes of a btrfs filesystem, ignore the default
> subvolume: we get the content of it when mounting the whole device
> (without specifying any particular subvolume), so avoid listing it
> twice.
> ---
>  src/listfs.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/src/listfs.c b/src/listfs.c
> index 98e74c7..de3b6f5 100644
> --- a/src/listfs.c
> +++ b/src/listfs.c
> @@ -169,8 +169,17 @@ check_with_vfs_type (guestfs_h *g, const char
> *device, struct stringsbuf *sb)
>      if (vols == NULL)
>        return -1;
>  
> +    int64_t default_volume = guestfs_btrfs_subvolume_get_default (g,
> device);
> +
>      for (size_t i = 0; i < vols->len; i++) {
>        struct guestfs_btrfssubvolume *this = &vols->val[i];
> +
> +      /* Ignore the default subvolume.  We get it by simply mounting
> +       * the whole device of this btrfs filesystem.
> +       */
> +      if (this->btrfssubvolume_id == (uint64_t) default_volume)
> +        continue;
> +
>        guestfs_int_add_sprintf (g, sb,
>  			       "btrfsvol:%s/%s",
>  			       device, this->btrfssubvolume_path);




More information about the Libguestfs mailing list