Btrfs-progs: add method to filter snapshots by parent uuid
authorAnand Jain <anand.jain@oracle.com>
Fri, 1 Feb 2013 07:56:24 +0000 (15:56 +0800)
committerDavid Sterba <dsterba@suse.cz>
Fri, 1 Feb 2013 15:55:05 +0000 (16:55 +0100)
Signed-off-by: Anand Jain <anand.jain@oracle.com>
btrfs-list.c
btrfs-list.h

index 247711d..a166c8b 100644 (file)
@@ -1156,6 +1156,11 @@ static int filter_full_path(struct root_info *ri, u64 data)
        return 1;
 }
 
+static int filter_by_parent(struct root_info *ri, u64 data)
+{
+       return !uuid_compare(ri->puuid, (u8 *)data);
+}
+
 static btrfs_list_filter_func all_filter_funcs[] = {
        [BTRFS_LIST_FILTER_ROOTID]              = filter_by_rootid,
        [BTRFS_LIST_FILTER_SNAPSHOT_ONLY]       = filter_snapshot,
@@ -1168,6 +1173,7 @@ static btrfs_list_filter_func all_filter_funcs[] = {
        [BTRFS_LIST_FILTER_CGEN_EQUAL]          = filter_cgen_equal,
        [BTRFS_LIST_FILTER_TOPID_EQUAL]         = filter_topid_equal,
        [BTRFS_LIST_FILTER_FULL_PATH]           = filter_full_path,
+       [BTRFS_LIST_FILTER_BY_PARENT]           = filter_by_parent,
 };
 
 struct btrfs_list_filter_set *btrfs_list_alloc_filter_set(void)
index 7c0d4c5..2870c71 100644 (file)
@@ -118,6 +118,7 @@ enum btrfs_list_filter_enum {
        BTRFS_LIST_FILTER_CGEN_MORE,
        BTRFS_LIST_FILTER_TOPID_EQUAL,
        BTRFS_LIST_FILTER_FULL_PATH,
+       BTRFS_LIST_FILTER_BY_PARENT,
        BTRFS_LIST_FILTER_MAX,
 };