diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-03-13 11:17:52 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2007-03-13 11:17:52 -0400 |
commit | 6a332a71ba500fb878787b48c10f00cce470bd4c (patch) | |
tree | 53f6a857c83545cc137d40ea75571b8981980cca | |
parent | 2c4257a34146069add6affbe1c4ff72275f7ad40 (diff) |
merge leaves before split
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | ctree.c | 9 |
2 files changed, 9 insertions, 2 deletions
@@ -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) @@ -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; |