aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/backref.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/backref.c')
-rw-r--r--fs/btrfs/backref.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 10ae5700ab1e..55ffcf44b909 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -388,10 +388,16 @@ static int __resolve_indirect_refs(struct btrfs_fs_info *fs_info,
388 continue; 388 continue;
389 err = __resolve_indirect_ref(fs_info, path, time_seq, ref, 389 err = __resolve_indirect_ref(fs_info, path, time_seq, ref,
390 parents, extent_item_pos); 390 parents, extent_item_pos);
391 if (err == -ENOMEM) 391 /*
392 goto out; 392 * we can only tolerate ENOENT,otherwise,we should catch error
393 if (err) 393 * and return directly.
394 */
395 if (err == -ENOENT) {
394 continue; 396 continue;
397 } else if (err) {
398 ret = err;
399 goto out;
400 }
395 401
396 /* we put the first parent into the ref at hand */ 402 /* we put the first parent into the ref at hand */
397 ULIST_ITER_INIT(&uiter); 403 ULIST_ITER_INIT(&uiter);