projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
538f72c
)
Btrfs: fix to catch all errors when resolving indirect ref
author
Wang Shilong
<
[email protected]
>
Thu, 23 Jan 2014 05:47:49 +0000
(13:47 +0800)
committer
Chris Mason
<
[email protected]
>
Wed, 29 Jan 2014 15:06:23 +0000
(07:06 -0800)
We can only tolerate ENOENT here, for other errors, we should
return directly.
Signed-off-by: Wang Shilong <
[email protected]
>
Signed-off-by: Josef Bacik <
[email protected]
>
Signed-off-by: Chris Mason <
[email protected]
>
fs/btrfs/backref.c
patch
|
blob
|
history
diff --git
a/fs/btrfs/backref.c
b/fs/btrfs/backref.c
index 10ae5700ab1eae1bb3c1b8bc72be03c6918e2324..55ffcf44b909f0931ca206af3e09fa01bb93cfe7 100644
(file)
--- 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,
continue;
err = __resolve_indirect_ref(fs_info, path, time_seq, ref,
parents, extent_item_pos);
- if (err == -ENOMEM)
- goto out;
- if (err)
+ /*
+ * we can only tolerate ENOENT,otherwise,we should catch error
+ * and return directly.
+ */
+ if (err == -ENOENT) {
continue;
+ } else if (err) {
+ ret = err;
+ goto out;
+ }
/* we put the first parent into the ref at hand */
ULIST_ITER_INIT(&uiter);