Btrfs: merge leaves before split

Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index bbb6322..dc62018 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1043,6 +1043,15 @@
 	int ret;
 	int wret;
 
+	wret = push_leaf_left(root, path, data_size);
+	if (wret < 0)
+		return wret;
+	if (wret) {
+		wret = push_leaf_right(root, path, data_size);
+		if (wret < 0)
+			return wret;
+	}
+
 	l_buf = path->nodes[0];
 	l = &l_buf->leaf;