Btrfs: fix split_leaf double split corner case
authorChris Mason <chris.mason@oracle.com>
Wed, 7 Jul 2010 14:51:48 +0000 (10:51 -0400)
committerChris Mason <chris.mason@oracle.com>
Mon, 19 Jul 2010 20:14:50 +0000 (16:14 -0400)
commit99d8f83c98930100cd70437b0c81a935e7a14b0b
treedb4ea3e51c5cc33b903c498368dc7b14e2a07125
parent6f902af400b2499c80865c62a06fbbd15cf804fd
Btrfs: fix split_leaf double split corner case

split_leaf was not properly balancing leaves when it was forced to
split a leaf twice.  This commit adds an extra push left and right
before forcing the double split in hopes of getting the slot where
we want to insert at either the start or end of the leaf.

If the extra pushes do work, then we are able to avoid splitting twice
and we keep the tree properly balanced.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/ctree.c