diff options
Diffstat (limited to 'fs/btrfs/backref.c')
-rw-r--r-- | fs/btrfs/backref.c | 12 |
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); |