summaryrefslogtreecommitdiff
path: root/fs/btrfs/ctree.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-03-02 09:47:58 -0500
committerDavid Woodhouse <dwmw2@hera.kernel.org>2007-03-02 09:47:58 -0500
commitf0930a37f1c096c3a8f6a17b1e251c7fdf4d4457 (patch)
tree51b569606b25cd5ef903f9ef97734a1f6ec291d2 /fs/btrfs/ctree.c
parented2ff2cba766dfe7976a0113f667c9a0a50dff02 (diff)
downloadlwn-f0930a37f1c096c3a8f6a17b1e251c7fdf4d4457.tar.gz
lwn-f0930a37f1c096c3a8f6a17b1e251c7fdf4d4457.zip
Btrfs: Fix extent code to use merge during delete
Remove implicit commit in del_item and insert_item Add implicit commit to close() Add commit op in random-test Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.c')
-rw-r--r--fs/btrfs/ctree.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 57fa505fb9f6..3c5f4c2dd525 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1065,11 +1065,7 @@ int insert_item(struct ctree_root *root, struct key *key,
ret = search_slot(root, key, &path, data_size);
if (ret == 0) {
release_path(root, &path);
- ret = -EEXIST;
- wret = commit_transaction(root);
- if (wret)
- ret = wret;
- return ret;
+ return -EEXIST;
}
if (ret < 0)
goto out;
@@ -1127,9 +1123,6 @@ int insert_item(struct ctree_root *root, struct key *key,
check_leaf(&path, 0);
out:
release_path(root, &path);
- wret = commit_transaction(root);
- if (wret)
- ret = wret;
return ret;
}
@@ -1245,7 +1238,8 @@ int del_item(struct ctree_root *root, struct ctree_path *path)
wret = push_leaf_left(root, path, 1);
if (wret < 0)
ret = wret;
- if (leaf->header.nritems) {
+ if (path->nodes[0] == leaf_buf &&
+ leaf->header.nritems) {
wret = push_leaf_right(root, path, 1);
if (wret < 0)
ret = wret;
@@ -1265,9 +1259,6 @@ int del_item(struct ctree_root *root, struct ctree_path *path)
}
}
}
- wret = commit_transaction(root);
- if (wret)
- ret = wret;
return ret;
}