btrfs-progs: inspect-dump-tree: add '-f|--follow' options to print all children tree blocks for '-b'
Subsystems (2)
PATCH 1/1 btrfs-progs: inspect-dump-tree: add '-f|--follow' options to print all children tree blocks for '-b'
When debuging with "btrfs inspect dump-tree", it's not that handy if we want to iterate all child tree blocks starting from a specified block.
-b can only print a single block, while without -b "btrfs inspect dump-tree" will need extra tree roots fulfilled to continue, which is not possible for some damaged filesystem.
Add a new option '-f|--follow' to iterate a sub-tree starting from block specified by '-b|--block', so we would have less limitation.
--- Documentation/btrfs-inspect-internal.asciidoc | 2 ++ cmds-inspect-dump-tree.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-)
Documentation/btrfs-inspect-internal.asciidoc +2 -0
@@ -87,6 +87,8 @@ the respective tree root block offset print only the uuid tree information, empty output if the tree does not exist -b <block_num>:::: print info of the specified block only +-f|--follow:::: +use with '-b', print all children tree blocks of '<block_num>' -t <tree_id>:::: print only the tree with the specified ID, where the ID can be numerical or common name in a flexible human readable form
cmds-inspect-dump-tree.c +8 -2
@@ -198,6 +198,7 @@ const char * const cmd_inspect_dump_tree_usage[] = {"-u|--uuid print only the uuid tree" ,"-b|--block <block_num> print info from the specified block only" ,"-t|--tree <tree_id> print only tree with the given id (string or number)" , +"-f|--follow use with '-b', to show all children tree blocks of <block_num>" , NULL };
@@ -223,6 +224,7 @@ int cmd_inspect_dump_tree(int argc, char **argv)u64 block_only =0 ;struct btrfs_root *tree_root_scan;u64 tree_id =0 ; +bool follow = false;while (1 ) {int c;
@@ -234,10 +236,11 @@ int cmd_inspect_dump_tree(int argc, char **argv) { "uuid", no_argument, NULL, 'u'}, { "block", required_argument, NULL, 'b'}, { "tree", required_argument, NULL, 't'}, + { "follow", no_argument, NULL, 'f'}, { NULL, 0, NULL, 0 } }; - c =getopt_long (argc, argv,"deb:rRut:" , long_options,NULL ); + c =getopt_long (argc, argv,"deb:rRut:f" , long_options,NULL );if (c <0 )break ;switch (c) {
@@ -286,6 +289,9 @@ int cmd_inspect_dump_tree(int argc, char **argv) }break ; } +case 'f' : + follow = true; +break ;default :usage (cmd_inspect_dump_tree_usage); }
@@ -324,7 +330,7 @@ int cmd_inspect_dump_tree(int argc, char **argv) (unsigned long long)block_only); goto close_root; } -btrfs_print_tree (root, leaf,0 ); +btrfs_print_tree (root, leaf, follow);free_extent_buffer (leaf); goto close_root; }
Signature · 1 line
2.16.2
Quoted 11 lines · Qu Wenruo
When debuging with "btrfs inspect dump-tree", it's not that handy if we want to iterate all child tree blocks starting from a specified block.
-b can only print a single block, while without -b "btrfs inspect dump-tree" will need extra tree roots fulfilled to continue, which is not possible for some damaged filesystem.
Add a new option '-f|--follow' to iterate a sub-tree starting from block specified by '-b|--block', so we would have less limitation.
Signed-off-by Qu Wenruo <[email protected]>
I've dropped the shot option for now and updated the changelog. While '-f' is probably a good choice, I'd postpone adding that if we want to use it for other purposes.
Quoted 8 lines · David Sterba
Quoted 7 lines · Qu Wenruo
When debuging with "btrfs inspect dump-tree", it's not that handy if we want to iterate all child tree blocks starting from a specified block.
-b can only print a single block, while without -b "btrfs inspect dump-tree" will need extra tree roots fulfilled to continue, which is not possible for some damaged filesystem.
Quoted 8 lines
Quoted 4 lines
Add a new option '-f|--follow' to iterate a sub-tree starting from block specified by '-b|--block', so we would have less limitation.
Signed-off-by Qu Wenruo <[email protected]>I've dropped the shot option for now and updated the changelog. While '-f' is probably a good choice, I'd postpone adding that if we want to use it for other purposes.
I'm fine with this.
Just curious if this means we should also double check the short option usage or this is just for "-f"?
Thanks,
Qu
Quoted 5 lines
--
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
Quoted 16 lines · Qu Wenruo
Quoted 13 lines · David Sterba
Quoted 11 lines · Qu Wenruo
When debuging with "btrfs inspect dump-tree", it's not that handy if we want to iterate all child tree blocks starting from a specified block.
-b can only print a single block, while without -b "btrfs inspect dump-tree" will need extra tree roots fulfilled to continue, which is not possible for some damaged filesystem.
Add a new option '-f|--follow' to iterate a sub-tree starting from block specified by '-b|--block', so we would have less limitation.
Signed-off-by Qu Wenruo <[email protected]>
Quoted 8 lines
Quoted 3 lines
I've dropped the shot option for now and updated the changelog. While '-f' is probably a good choice, I'd postpone adding that if we want to use it for other purposes.
I'm fine with this.
Just curious if this means we should also double check the short option usage or this is just for "-f"?
You don't need to add a short option from the beginning, this can be added later when we can decide by the usage if it's worth.