summaryrefslogtreecommitdiff
path: root/btrfs-list.h
diff options
context:
space:
mode:
authorwangshilong <wangsl-fnst@cn.fujitsu.com>2012-09-19 17:21:51 +0800
committerroot <root@localhost.localdomain>2012-10-04 16:26:33 -0400
commit60d11eca6649700c1e39c19c36c903cad747e775 (patch)
tree57868509696a0977308585d46ee80870ce7ccc38 /btrfs-list.h
parentaf3045cb201b5a89397d90409aafe111aa526e8a (diff)
Btrfs-progs: introduce -g -c --sort options into btrfs subvol list command
This patch introduces '-g' '-c' '--sort' options The option '-g' can help you filter the subvolumes by the generation, you may use it just like: btrfs subvol list -g +/-value <path> '+' means the generation of the subvolumes should >= the value you specified. '-' means the generation should <= the value If you don't input either '+' nor '-', this command will list the subvolumes that their generation equals to the value. However if you want to find gengeration between value1 and value2 you may use the above like: btrfs sub list -g -value1 -g +value2 <path> The option '-c' can help you filter the subvolumes by the ogeneration, you may use it just like: btrfs subvol list -c +/-value <path> The usage is the same to '-g' You might want to list subvolumes in order of some items, such as root id, gen and so on, you can use '--sort'. Now you can sort the subvolumes by root id, gen, ogen and path. For example: If you want to list subvolumes in order of rootid, you can use the option like that: btrfs sub list --sort=+/-rooid <path> Here, '+' means the result is sorted by ascending order. '-' is by descending order. If you don't specify either '+' nor '-', the result is sorted by default - ascending order. If you want to combine sort items, you do it like that: btrfs sub list --sort=-rootid,+path,ogen,gen <path> Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Diffstat (limited to 'btrfs-list.h')
-rw-r--r--btrfs-list.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/btrfs-list.h b/btrfs-list.h
index 21d0fdc..26a5c17 100644
--- a/btrfs-list.h
+++ b/btrfs-list.h
@@ -62,6 +62,14 @@ enum btrfs_list_filter_enum {
BTRFS_LIST_FILTER_ROOTID,
BTRFS_LIST_FILTER_SNAPSHOT_ONLY,
BTRFS_LIST_FILTER_FLAGS,
+ BTRFS_LIST_FILTER_GEN,
+ BTRFS_LIST_FILTER_GEN_EQUAL = BTRFS_LIST_FILTER_GEN,
+ BTRFS_LIST_FILTER_GEN_LESS,
+ BTRFS_LIST_FILTER_GEN_MORE,
+ BTRFS_LIST_FILTER_CGEN,
+ BTRFS_LIST_FILTER_CGEN_EQUAL = BTRFS_LIST_FILTER_CGEN,
+ BTRFS_LIST_FILTER_CGEN_LESS,
+ BTRFS_LIST_FILTER_CGEN_MORE,
BTRFS_LIST_FILTER_MAX,
};
@@ -69,9 +77,15 @@ enum btrfs_list_comp_enum {
BTRFS_LIST_COMP_ROOTID,
BTRFS_LIST_COMP_OGEN,
BTRFS_LIST_COMP_GEN,
+ BTRFS_LIST_COMP_PATH,
BTRFS_LIST_COMP_MAX,
};
+int btrfs_list_parse_sort_string(char *optarg,
+ struct btrfs_list_comparer_set **comps);
+int btrfs_list_parse_filter_string(char *optarg,
+ struct btrfs_list_filter_set **filters,
+ enum btrfs_list_filter_enum type);
void btrfs_list_setup_print_column(enum btrfs_list_column_enum column);
struct btrfs_list_filter_set *btrfs_list_alloc_filter_set(void);
void btrfs_list_free_filter_set(struct btrfs_list_filter_set *filter_set);