As users generally organize the subvols and snapshots based on the subvol directory hierarchy. So providing an ability to sort them by topid would help. Thanks.
Signed-off-by: Anand Jain <[email protected]> --- btrfs-list.c | 18 ++++++++++++++++++ btrfs-list.h | 1 + cmds-subvolume.c | 8 ++++---- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/btrfs-list.c b/btrfs-list.c index 92a537f425f3..733e22bc2524 100644 --- a/btrfs-list.c +++ b/btrfs-list.c @@ -188,11 +188,28 @@ static int comp_entry_with_path(struct root_info *entry1, return is_descending ? -ret : ret; } +static int comp_entry_with_topid(struct root_info *entry1, + struct root_info *entry2, + int is_descending) +{ + int ret; + + if (entry1->top_id > entry2->top_id) + ret = 1; + else if (entry1->top_id < entry2->top_id) + ret = -1; + else + ret = 0; + + return is_descending ? -ret : ret; +} + static btrfs_list_comp_func all_comp_funcs[] = { [BTRFS_LIST_COMP_ROOTID] = comp_entry_with_rootid, [BTRFS_LIST_COMP_OGEN] = comp_entry_with_ogen, [BTRFS_LIST_COMP_GEN] = comp_entry_with_gen, [BTRFS_LIST_COMP_PATH] = comp_entry_with_path, + [BTRFS_LIST_COMP_TOPID] = comp_entry_with_topid, }; static char *all_sort_items[] = { @@ -200,6 +217,7 @@ static char *all_sort_items[] = { [BTRFS_LIST_COMP_OGEN] = "ogen", [BTRFS_LIST_COMP_GEN] = "gen", [BTRFS_LIST_COMP_PATH] = "path", + [BTRFS_LIST_COMP_TOPID] = "topid", [BTRFS_LIST_COMP_MAX] = NULL, }; diff --git a/btrfs-list.h b/btrfs-list.h index 6e5fc7784fb1..9a3869a452a8 100644 --- a/btrfs-list.h +++ b/btrfs-list.h @@ -152,6 +152,7 @@ enum btrfs_list_comp_enum { BTRFS_LIST_COMP_OGEN, BTRFS_LIST_COMP_GEN, BTRFS_LIST_COMP_PATH, + BTRFS_LIST_COMP_TOPID, BTRFS_LIST_COMP_MAX, }; diff --git a/cmds-subvolume.c b/cmds-subvolume.c index de5e0da0ff48..17b680d26e86 100644 --- a/cmds-subvolume.c +++ b/cmds-subvolume.c @@ -416,10 +416,10 @@ static const char * const cmd_subvol_list_usage[] = { "-C [+|-]value", " filter the subvolumes by ogeneration", " (+value: >= value; -value: <= value; value: = value)", - "--sort=gen,ogen,rootid,path", - " list the subvolume in order of gen, ogen, rootid or path", - " you also can add '+' or '-' in front of each items.", - " (+:ascending, -:descending, ascending default)", + "--sort=gen,ogen,rootid,path,topid", + " list the subvolumes in order of gen, ogen, rootid, path", + " or topid. You also can add '+' or '-' in front of each", + " items. (+:ascending, -:descending, ascending default)", NULL, }; -- 2.13.1 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
