Loading fs/btrfs/ctree.c +3 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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; } Loading fs/btrfs/disk-io.c +1 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ static int drop_cache(struct ctree_root *root) } int close_ctree(struct ctree_root *root) { commit_transaction(root); drop_cache(root->extent_root); drop_cache(root); BUG_ON(!list_empty(&root->trans)); Loading fs/btrfs/extent-tree.c +2 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ static int del_pending_extents(struct ctree_root *extent_root) key.flags = 0; key.offset = 1; init_path(&path); ret = search_slot(extent_root, &key, &path, 0); ret = search_slot(extent_root, &key, &path, -1); if (ret) { print_tree(extent_root, extent_root->node); printf("unable to find %Lu\n", key.objectid); Loading Loading @@ -83,7 +83,7 @@ int free_extent(struct ctree_root *root, u64 blocknr, u64 num_blocks) return 0; } init_path(&path); ret = search_slot(extent_root, &key, &path, 0); ret = search_slot(extent_root, &key, &path, -1); if (ret) { print_tree(extent_root, extent_root->node); printf("failed to find %Lu\n", key.objectid); Loading fs/btrfs/random-test.c +8 −2 Original line number Diff line number Diff line Loading @@ -59,6 +59,11 @@ static int ins_one(struct ctree_root *root, struct radix_tree_root *radix) return -1; } static int run_commit(struct ctree_root *root, struct radix_tree_root *radix) { return commit_transaction(root); } static int insert_dup(struct ctree_root *root, struct radix_tree_root *radix) { struct ctree_path path; Loading Loading @@ -233,7 +238,8 @@ static int bulk_op(struct ctree_root *root, struct radix_tree_root *radix) int (*ops[])(struct ctree_root *root, struct radix_tree_root *radix) = { ins_one, insert_dup, del_one, lookup_item, lookup_enoent, bulk_op }; { ins_one, insert_dup, del_one, lookup_item, lookup_enoent, bulk_op, run_commit }; static int fill_radix(struct ctree_root *root, struct radix_tree_root *radix) { Loading Loading @@ -366,7 +372,7 @@ int main(int ac, char **av) err = ret; goto out; } if (ops[op] == bulk_op) if (ops[op] == bulk_op || ops[op] == run_commit) break; if (keep_running == 0) { err = 0; Loading Loading
fs/btrfs/ctree.c +3 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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; } Loading
fs/btrfs/disk-io.c +1 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ static int drop_cache(struct ctree_root *root) } int close_ctree(struct ctree_root *root) { commit_transaction(root); drop_cache(root->extent_root); drop_cache(root); BUG_ON(!list_empty(&root->trans)); Loading
fs/btrfs/extent-tree.c +2 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ static int del_pending_extents(struct ctree_root *extent_root) key.flags = 0; key.offset = 1; init_path(&path); ret = search_slot(extent_root, &key, &path, 0); ret = search_slot(extent_root, &key, &path, -1); if (ret) { print_tree(extent_root, extent_root->node); printf("unable to find %Lu\n", key.objectid); Loading Loading @@ -83,7 +83,7 @@ int free_extent(struct ctree_root *root, u64 blocknr, u64 num_blocks) return 0; } init_path(&path); ret = search_slot(extent_root, &key, &path, 0); ret = search_slot(extent_root, &key, &path, -1); if (ret) { print_tree(extent_root, extent_root->node); printf("failed to find %Lu\n", key.objectid); Loading
fs/btrfs/random-test.c +8 −2 Original line number Diff line number Diff line Loading @@ -59,6 +59,11 @@ static int ins_one(struct ctree_root *root, struct radix_tree_root *radix) return -1; } static int run_commit(struct ctree_root *root, struct radix_tree_root *radix) { return commit_transaction(root); } static int insert_dup(struct ctree_root *root, struct radix_tree_root *radix) { struct ctree_path path; Loading Loading @@ -233,7 +238,8 @@ static int bulk_op(struct ctree_root *root, struct radix_tree_root *radix) int (*ops[])(struct ctree_root *root, struct radix_tree_root *radix) = { ins_one, insert_dup, del_one, lookup_item, lookup_enoent, bulk_op }; { ins_one, insert_dup, del_one, lookup_item, lookup_enoent, bulk_op, run_commit }; static int fill_radix(struct ctree_root *root, struct radix_tree_root *radix) { Loading Loading @@ -366,7 +372,7 @@ int main(int ac, char **av) err = ret; goto out; } if (ops[op] == bulk_op) if (ops[op] == bulk_op || ops[op] == run_commit) break; if (keep_running == 0) { err = 0; Loading