mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-23 14:45:19 +00:00
btrfs-progs: find-root: Output matched root when searching all roots
[Bug] When given '-a' option, btrfs-find-root will output all possible tree roots but the exact matched one. [Reason] Result printing skipes the exact match one, as it will normally be shown before the alternative ones. But when '-a' is given, that's not the case. [Fix] Just show the exact match one for search all case. Reported-by: Marc Merlin <marc@merlins.org> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
96fbc6a146
commit
3eb8836424
@ -109,6 +109,9 @@ static void print_one_result(struct cache_extent *tree_block,
|
||||
tree_block->start, generation, level);
|
||||
if (unsure)
|
||||
printf("but we are unsure about the correct generation/level\n");
|
||||
else if (level == filter->match_level &&
|
||||
generation == filter->match_gen)
|
||||
printf("and it matches superblock\n");
|
||||
else
|
||||
printf("but generation/level doesn't match, want gen: %llu level: %u\n",
|
||||
filter->match_gen, filter->match_level);
|
||||
@ -129,8 +132,10 @@ static void print_find_root_result(struct cache_tree *result,
|
||||
struct btrfs_find_root_gen_cache, cache);
|
||||
level = gen_cache->highest_level;
|
||||
generation = cache->start;
|
||||
/* For exact found one, skip it as it's output before */
|
||||
if (level == filter->match_level &&
|
||||
generation == filter->match_gen)
|
||||
generation == filter->match_gen &&
|
||||
!filter->search_all)
|
||||
continue;
|
||||
for (tree_block = last_cache_extent(&gen_cache->eb_tree);
|
||||
tree_block; tree_block = prev_cache_extent(tree_block))
|
||||
|
Loading…
Reference in New Issue
Block a user