projects
/
profile
/
common
/
kernel-common.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6fc823b
)
Btrfs: don't run __tree_mod_log_free_eb on leaves
author
Chris Mason
<chris.mason@fusionio.com>
Tue, 7 Aug 2012 19:34:49 +0000
(15:34 -0400)
committer
Chris Mason
<chris.mason@oracle.com>
Tue, 28 Aug 2012 20:53:34 +0000
(16:53 -0400)
When we split a leaf, we may end up inserting a new root on top of that
leaf. The reflog code was incorrectly assuming the old root was always
a node. This makes sure we skip over leaves.
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/ctree.c
patch
|
blob
|
history
diff --git
a/fs/btrfs/ctree.c
b/fs/btrfs/ctree.c
index
08e0b11
..
6d183f6
100644
(file)
--- a/
fs/btrfs/ctree.c
+++ b/
fs/btrfs/ctree.c
@@
-625,6
+625,9
@@
__tree_mod_log_free_eb(struct btrfs_fs_info *fs_info, struct extent_buffer *eb)
u32 nritems;
int ret;
+ if (btrfs_header_level(eb) == 0)
+ return;
+
nritems = btrfs_header_nritems(eb);
for (i = nritems - 1; i >= 0; i--) {
ret = tree_mod_log_insert_key_locked(fs_info, eb, i,