From c63d47653fc61e59f6b7d30b55982e9fe843ceef Mon Sep 17 00:00:00 2001 From: Gui Hecheng Date: Wed, 28 May 2014 18:49:38 +0800 Subject: btrfs-progs: fix blindly goto failure for chunk-recover If the csum of one stripe is not able to judge the order of two device extents, the stripe may happen to belong to the device extent that is already kicked out as ordered. Take this condition into consideration, don't report failure and give more tries with the stripes following. Signed-off-by: Gui Hecheng Signed-off-by: David Sterba --- chunk-recover.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/chunk-recover.c b/chunk-recover.c index bd37d6e8..dfa7ff63 100644 --- a/chunk-recover.c +++ b/chunk-recover.c @@ -1922,10 +1922,9 @@ next_csum: list_splice_init(&unordered, &chunk->dextents); btrfs_release_path(&path); return 0; - } else - ret = 1; + } - goto fail_out; + goto next_stripe; } if (list_is_last(candidates.next, &candidates)) { -- cgit v1.2.3