diff options
author | Anand Jain <anand.jain@oracle.com> | 2013-02-01 15:56:20 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-02-01 16:55:04 +0100 |
commit | 93b3fd3879305acd70625306fd37c4df4ea1587d (patch) | |
tree | 7c7310325a6d03453d1cbfdabdf87542e9c1cb4d /btrfs-list.c | |
parent | 8c2b1be4282aa3e8cf2bf40bd18f124fdecdda33 (diff) |
Btrfs-progs: move printing subvol list outside of btrfs_list_subvols
To improve the code reuse its better to have btrfs_list_subvols
just return list of subvols witout printing
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Diffstat (limited to 'btrfs-list.c')
-rw-r--r-- | btrfs-list.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/btrfs-list.c b/btrfs-list.c index e677f45c..a19c3af8 100644 --- a/btrfs-list.c +++ b/btrfs-list.c @@ -1453,16 +1453,11 @@ static void print_all_volume_info(struct root_lookup *sorted_tree, } } -int btrfs_list_subvols(int fd, struct btrfs_list_filter_set *filter_set, - struct btrfs_list_comparer_set *comp_set, - int is_tab_result, int full_path) +int btrfs_list_subvols(int fd, struct root_lookup *root_lookup) { - struct root_lookup root_lookup; - struct root_lookup root_sort; int ret; - u64 top_id = (full_path ? 0 : btrfs_list_get_path_rootid(fd)); - ret = __list_subvol_search(fd, &root_lookup); + ret = __list_subvol_search(fd, root_lookup); if (ret) { fprintf(stderr, "ERROR: can't perform the search - %s\n", strerror(errno)); @@ -1473,16 +1468,29 @@ int btrfs_list_subvols(int fd, struct btrfs_list_filter_set *filter_set, * now we have an rbtree full of root_info objects, but we need to fill * in their path names within the subvol that is referencing each one. */ - ret = __list_subvol_fill_paths(fd, &root_lookup); - if (ret < 0) - return ret; + ret = __list_subvol_fill_paths(fd, root_lookup); + return ret; +} +int btrfs_list_subvols_print(int fd, struct btrfs_list_filter_set *filter_set, + struct btrfs_list_comparer_set *comp_set, + int is_tab_result, int full_path) +{ + struct root_lookup root_lookup; + struct root_lookup root_sort; + int ret; + u64 top_id = (full_path ? 0 : btrfs_list_get_path_rootid(fd)); + + ret = btrfs_list_subvols(fd, &root_lookup); + if (ret) + return ret; __filter_and_sort_subvol(&root_lookup, &root_sort, filter_set, comp_set, top_id); print_all_volume_info(&root_sort, is_tab_result); __free_all_subvolumn(&root_lookup); - return ret; + + return 0; } static int print_one_extent(int fd, struct btrfs_ioctl_search_header *sh, |