summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-03-13 11:17:52 -0400
committerDavid Woodhouse <dwmw2@hera.kernel.org>2007-03-13 11:17:52 -0400
commit6a332a71ba500fb878787b48c10f00cce470bd4c (patch)
tree53f6a857c83545cc137d40ea75571b8981980cca
parent2c4257a34146069add6affbe1c4ff72275f7ad40 (diff)
merge leaves before split
-rw-r--r--TODO2
-rw-r--r--ctree.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/TODO b/TODO
index 52d2a7a0..ad29267b 100644
--- a/TODO
+++ b/TODO
@@ -1,10 +1,8 @@
* cleanup, add more error checking, get rid of BUG_ONs
-* endian fixes
* Make IO functions look more like the page cache
* Fix ENOSPC handling
* make blocksize a mkfs parameter instead of #define
* make a real mkfs and superblock
-* Add shadowing and transactions
* Do checksumming
* Define FS objects in terms of different item types
* Add block mapping tree (simple dm layer)
diff --git a/ctree.c b/ctree.c
index bbb63229..dc620186 100644
--- a/ctree.c
+++ b/ctree.c
@@ -1043,6 +1043,15 @@ static int split_leaf(struct btrfs_root *root, struct btrfs_path *path,
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;