linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] btrfs-progs: find-root: Output matched root when searching all roots
@ 2015-08-25  2:44 Qu Wenruo
  2015-08-25  2:44 ` [PATCH 2/2] btrfs-progs: find-root: Fix a bug that will cause wrong result Qu Wenruo
  2015-08-25 17:16 ` [PATCH 1/2] btrfs-progs: find-root: Output matched root when searching all roots David Sterba
  0 siblings, 2 replies; 4+ messages in thread
From: Qu Wenruo @ 2015-08-25  2:44 UTC (permalink / raw)
  To: linux-btrfs; +Cc: marc

[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>
---
 btrfs-find-root.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/btrfs-find-root.c b/btrfs-find-root.c
index 1cb3085..01b3603 100644
--- a/btrfs-find-root.c
+++ b/btrfs-find-root.c
@@ -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))
-- 
2.5.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-08-25 17:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-25  2:44 [PATCH 1/2] btrfs-progs: find-root: Output matched root when searching all roots Qu Wenruo
2015-08-25  2:44 ` [PATCH 2/2] btrfs-progs: find-root: Fix a bug that will cause wrong result Qu Wenruo
2015-08-25 17:18   ` David Sterba
2015-08-25 17:16 ` [PATCH 1/2] btrfs-progs: find-root: Output matched root when searching all roots David Sterba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).