path: root/cmds-subvolume.c
diff options
authorLukas Czerner <>2012-12-11 15:25:00 +0100
committerDavid Sterba <>2013-02-01 16:55:03 +0100
commit8c2b1be4282aa3e8cf2bf40bd18f124fdecdda33 (patch)
tree6aa8ecc2bcd8ac0697dac84b8f5d644337b182c4 /cmds-subvolume.c
parent68120361745cc2cca7ad01170653b57649f26da6 (diff)
Btrfs-progs: List all subvolumes by default
Commit a1e89891eb6af5381539d9875b85c196150171b6 changed subvolume list command so that we list only subvolumes under the specified directory. However this is confusing and unnecessary obstacle, because one usually want to see all subvolumes in the file system. It was introduced with the notion the full_path may be invalid which is not exactly true as the full_path is always relative to the root subvolume which makes perfect sense. Simply making option '-a' default is not enough since it introduces the relative/absolute path distinction effectively obfuscating the subvolume nesting. This commit returns the subvolume list command behaviour before commit a1e89891eb6af5381539d9875b85c196150171b6 where we list all subvolumes in the filesystem with path naming from root subovolume. IMO this is the best default as it is well understood and gives all the important information about file system subvolumes including subvolume nesting without the need to parse additional information. Signed-off-by: Lukas Czerner <>
Diffstat (limited to 'cmds-subvolume.c')
1 files changed, 4 insertions, 3 deletions
diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index fbda90b8..dcb4299a 100644
--- a/cmds-subvolume.c
+++ b/cmds-subvolume.c
@@ -311,7 +311,7 @@ static int cmd_subvol_list(int argc, char **argv)
char *subvol;
int is_tab_result = 0;
int is_list_all = 0;
- int is_only_in_path = 1;
+ int is_only_in_path = 0;
struct option long_options[] = {
{"sort", 1, NULL, 'S'},
{0, 0, 0, 0}
@@ -419,7 +419,8 @@ static int cmd_subvol_list(int argc, char **argv)
ret = btrfs_list_subvols(fd, filter_set, comparer_set,
- is_tab_result);
+ is_tab_result,
+ !is_list_all && !is_only_in_path);
if (ret)
return 19;
return 0;
@@ -625,7 +626,7 @@ static int cmd_subvol_get_default(int argc, char **argv)
btrfs_list_setup_filter(&filter_set, BTRFS_LIST_FILTER_ROOTID,
- ret = btrfs_list_subvols(fd, filter_set, NULL, 0);
+ ret = btrfs_list_subvols(fd, filter_set, NULL, 0, 1);
if (ret)
return 19;
return 0;