forked from Mirrors/btrfs-progs
Call btrfs_cow_block while lowering tree level.
When freeing root block of a tree, btrfs_free_extent' parameter 'ref_generation' is from root block itseft. When freeing non-root block, 'ref_generation' is from its parent. so when converting a non-root block to root block, we must guarantee its generation is equal to its parent's generation.master
parent
d2255c7c2f
commit
ece29db279
3
ctree.c
3
ctree.c
|
@ -686,6 +686,9 @@ static int balance_level(struct btrfs_trans_handle *trans,
|
|||
/* promote the child to a root */
|
||||
child = read_node_slot(root, mid, 0);
|
||||
BUG_ON(!child);
|
||||
ret = btrfs_cow_block(trans, root, child, mid, 0, &child);
|
||||
BUG_ON(ret);
|
||||
|
||||
root->node = child;
|
||||
path->nodes[level] = NULL;
|
||||
clean_tree_block(trans, root, mid);
|
||||
|
|
Loading…
Reference in New Issue