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 ...
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW