On Thu, 2016-02-25 at 19:10 +0000, Richard W.M. Jones wrote:
On Thu, Feb 25, 2016 at 05:50:57PM +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);
ACK.
Was there an RHBZ# for this? Can't seem to find it ...
I least none that I am aware of, not even a bsc# as we have an pretty old version on openSUSE. I just got the problem with my testing of recent releases. -- Cedric