Переглянути джерело

Btrfs: merge leaves before split

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 18 роки тому
батько
коміт
eaee50e881
2 змінених файлів з 9 додано та 2 видалено
  1. 0 2
      fs/btrfs/TODO
  2. 9 0
      fs/btrfs/ctree.c

+ 0 - 2
fs/btrfs/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)

+ 9 - 0
fs/btrfs/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;