Commit 95def2ed authored by Wang Shilong's avatar Wang Shilong Committed by Chris Mason

Btrfs: fix to catch all errors when resolving indirect ref

We can only tolerate ENOENT here, for other errors, we should
return directly.
Signed-off-by: default avatarWang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent 538f72cd
...@@ -388,10 +388,16 @@ static int __resolve_indirect_refs(struct btrfs_fs_info *fs_info, ...@@ -388,10 +388,16 @@ static int __resolve_indirect_refs(struct btrfs_fs_info *fs_info,
continue; continue;
err = __resolve_indirect_ref(fs_info, path, time_seq, ref, err = __resolve_indirect_ref(fs_info, path, time_seq, ref,
parents, extent_item_pos); parents, extent_item_pos);
if (err == -ENOMEM) /*
goto out; * we can only tolerate ENOENT,otherwise,we should catch error
if (err) * and return directly.
*/
if (err == -ENOENT) {
continue; continue;
} else if (err) {
ret = err;
goto out;
}
/* we put the first parent into the ref at hand */ /* we put the first parent into the ref at hand */
ULIST_ITER_INIT(&uiter); ULIST_ITER_INIT(&uiter);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment