mirror of https://gitee.com/openkylin/linux.git
Btrfs: don't run __tree_mod_log_free_eb on leaves
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>
This commit is contained in:
parent
6fc823b10f
commit
b12a3b1ea2
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue