aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.c
diff options
context:
space:
mode:
authorDaniel Dressler <danieru.dressler@gmail.com>2014-11-21 03:15:07 -0500
committerDavid Sterba <dsterba@suse.cz>2015-02-16 12:48:43 -0500
commit01d58472a887cba61da7b4e6dc251b5170b57e2e (patch)
tree3585a783d9acea536c86905555868451431e5a62 /fs/btrfs/ctree.c
parenta585e94895ed8ab2930bfd5186ffd20301b5c703 (diff)
Btrfs: disk-io: replace root args iff only fs_info used
This is the 3rd independent patch of a larger project to cleanup btrfs's internal usage of btrfs_root. Many functions take btrfs_root only to grab the fs_info struct. By requiring a root these functions cause programmer overhead. That these functions can accept any valid root is not obvious until inspection. This patch reduces the specificity of such functions to accept the fs_info directly. These patches can be applied independently and thus are not being submitted as a patch series. There should be about 26 patches by the project's completion. Each patch will cleanup between 1 and 34 functions apiece. Each patch covers a single file's functions. This patch affects the following function(s): 1) csum_tree_block 2) csum_dirty_buffer 3) check_tree_block_fsid 4) btrfs_find_tree_block 5) clean_tree_block Signed-off-by: Daniel Dressler <danieru.dressler@gmail.com> Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'fs/btrfs/ctree.c')
-rw-r--r--fs/btrfs/ctree.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 8c03c9222154..e1a0981159ab 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1073,7 +1073,7 @@ static noinline int update_ref_for_cow(struct btrfs_trans_handle *trans,
1073 ret = btrfs_dec_ref(trans, root, buf, 1); 1073 ret = btrfs_dec_ref(trans, root, buf, 1);
1074 BUG_ON(ret); /* -ENOMEM */ 1074 BUG_ON(ret); /* -ENOMEM */
1075 } 1075 }
1076 clean_tree_block(trans, root, buf); 1076 clean_tree_block(trans, root->fs_info, buf);
1077 *last_ref = 1; 1077 *last_ref = 1;
1078 } 1078 }
1079 return 0; 1079 return 0;
@@ -1678,7 +1678,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
1678 continue; 1678 continue;
1679 } 1679 }
1680 1680
1681 cur = btrfs_find_tree_block(root, blocknr); 1681 cur = btrfs_find_tree_block(root->fs_info, blocknr);
1682 if (cur) 1682 if (cur)
1683 uptodate = btrfs_buffer_uptodate(cur, gen, 0); 1683 uptodate = btrfs_buffer_uptodate(cur, gen, 0);
1684 else 1684 else
@@ -1943,7 +1943,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
1943 1943
1944 path->locks[level] = 0; 1944 path->locks[level] = 0;
1945 path->nodes[level] = NULL; 1945 path->nodes[level] = NULL;
1946 clean_tree_block(trans, root, mid); 1946 clean_tree_block(trans, root->fs_info, mid);
1947 btrfs_tree_unlock(mid); 1947 btrfs_tree_unlock(mid);
1948 /* once for the path */ 1948 /* once for the path */
1949 free_extent_buffer(mid); 1949 free_extent_buffer(mid);
@@ -1997,7 +1997,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
1997 if (wret < 0 && wret != -ENOSPC) 1997 if (wret < 0 && wret != -ENOSPC)
1998 ret = wret; 1998 ret = wret;
1999 if (btrfs_header_nritems(right) == 0) { 1999 if (btrfs_header_nritems(right) == 0) {
2000 clean_tree_block(trans, root, right); 2000 clean_tree_block(trans, root->fs_info, right);
2001 btrfs_tree_unlock(right); 2001 btrfs_tree_unlock(right);
2002 del_ptr(root, path, level + 1, pslot + 1); 2002 del_ptr(root, path, level + 1, pslot + 1);
2003 root_sub_used(root, right->len); 2003 root_sub_used(root, right->len);
@@ -2041,7 +2041,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
2041 BUG_ON(wret == 1); 2041 BUG_ON(wret == 1);
2042 } 2042 }
2043 if (btrfs_header_nritems(mid) == 0) { 2043 if (btrfs_header_nritems(mid) == 0) {
2044 clean_tree_block(trans, root, mid); 2044 clean_tree_block(trans, root->fs_info, mid);
2045 btrfs_tree_unlock(mid); 2045 btrfs_tree_unlock(mid);
2046 del_ptr(root, path, level + 1, pslot); 2046 del_ptr(root, path, level + 1, pslot);
2047 root_sub_used(root, mid->len); 2047 root_sub_used(root, mid->len);
@@ -2259,7 +2259,7 @@ static void reada_for_search(struct btrfs_root *root,
2259 2259
2260 search = btrfs_node_blockptr(node, slot); 2260 search = btrfs_node_blockptr(node, slot);
2261 blocksize = root->nodesize; 2261 blocksize = root->nodesize;
2262 eb = btrfs_find_tree_block(root, search); 2262 eb = btrfs_find_tree_block(root->fs_info, search);
2263 if (eb) { 2263 if (eb) {
2264 free_extent_buffer(eb); 2264 free_extent_buffer(eb);
2265 return; 2265 return;
@@ -2319,7 +2319,7 @@ static noinline void reada_for_balance(struct btrfs_root *root,
2319 if (slot > 0) { 2319 if (slot > 0) {
2320 block1 = btrfs_node_blockptr(parent, slot - 1); 2320 block1 = btrfs_node_blockptr(parent, slot - 1);
2321 gen = btrfs_node_ptr_generation(parent, slot - 1); 2321 gen = btrfs_node_ptr_generation(parent, slot - 1);
2322 eb = btrfs_find_tree_block(root, block1); 2322 eb = btrfs_find_tree_block(root->fs_info, block1);
2323 /* 2323 /*
2324 * if we get -eagain from btrfs_buffer_uptodate, we 2324 * if we get -eagain from btrfs_buffer_uptodate, we
2325 * don't want to return eagain here. That will loop 2325 * don't want to return eagain here. That will loop
@@ -2332,7 +2332,7 @@ static noinline void reada_for_balance(struct btrfs_root *root,
2332 if (slot + 1 < nritems) { 2332 if (slot + 1 < nritems) {
2333 block2 = btrfs_node_blockptr(parent, slot + 1); 2333 block2 = btrfs_node_blockptr(parent, slot + 1);
2334 gen = btrfs_node_ptr_generation(parent, slot + 1); 2334 gen = btrfs_node_ptr_generation(parent, slot + 1);
2335 eb = btrfs_find_tree_block(root, block2); 2335 eb = btrfs_find_tree_block(root->fs_info, block2);
2336 if (eb && btrfs_buffer_uptodate(eb, gen, 1) != 0) 2336 if (eb && btrfs_buffer_uptodate(eb, gen, 1) != 0)
2337 block2 = 0; 2337 block2 = 0;
2338 free_extent_buffer(eb); 2338 free_extent_buffer(eb);
@@ -2450,7 +2450,7 @@ read_block_for_search(struct btrfs_trans_handle *trans,
2450 blocknr = btrfs_node_blockptr(b, slot); 2450 blocknr = btrfs_node_blockptr(b, slot);
2451 gen = btrfs_node_ptr_generation(b, slot); 2451 gen = btrfs_node_ptr_generation(b, slot);
2452 2452
2453 tmp = btrfs_find_tree_block(root, blocknr); 2453 tmp = btrfs_find_tree_block(root->fs_info, blocknr);
2454 if (tmp) { 2454 if (tmp) {
2455 /* first we do an atomic uptodate check */ 2455 /* first we do an atomic uptodate check */
2456 if (btrfs_buffer_uptodate(tmp, gen, 1) > 0) { 2456 if (btrfs_buffer_uptodate(tmp, gen, 1) > 0) {
@@ -3694,7 +3694,7 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
3694 if (left_nritems) 3694 if (left_nritems)
3695 btrfs_mark_buffer_dirty(left); 3695 btrfs_mark_buffer_dirty(left);
3696 else 3696 else
3697 clean_tree_block(trans, root, left); 3697 clean_tree_block(trans, root->fs_info, left);
3698 3698
3699 btrfs_mark_buffer_dirty(right); 3699 btrfs_mark_buffer_dirty(right);
3700 3700
@@ -3706,7 +3706,7 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
3706 if (path->slots[0] >= left_nritems) { 3706 if (path->slots[0] >= left_nritems) {
3707 path->slots[0] -= left_nritems; 3707 path->slots[0] -= left_nritems;
3708 if (btrfs_header_nritems(path->nodes[0]) == 0) 3708 if (btrfs_header_nritems(path->nodes[0]) == 0)
3709 clean_tree_block(trans, root, path->nodes[0]); 3709 clean_tree_block(trans, root->fs_info, path->nodes[0]);
3710 btrfs_tree_unlock(path->nodes[0]); 3710 btrfs_tree_unlock(path->nodes[0]);
3711 free_extent_buffer(path->nodes[0]); 3711 free_extent_buffer(path->nodes[0]);
3712 path->nodes[0] = right; 3712 path->nodes[0] = right;
@@ -3930,7 +3930,7 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
3930 if (right_nritems) 3930 if (right_nritems)
3931 btrfs_mark_buffer_dirty(right); 3931 btrfs_mark_buffer_dirty(right);
3932 else 3932 else
3933 clean_tree_block(trans, root, right); 3933 clean_tree_block(trans, root->fs_info, right);
3934 3934
3935 btrfs_item_key(right, &disk_key, 0); 3935 btrfs_item_key(right, &disk_key, 0);
3936 fixup_low_keys(root->fs_info, path, &disk_key, 1); 3936 fixup_low_keys(root->fs_info, path, &disk_key, 1);
@@ -4984,7 +4984,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
4984 btrfs_set_header_level(leaf, 0); 4984 btrfs_set_header_level(leaf, 0);
4985 } else { 4985 } else {
4986 btrfs_set_path_blocking(path); 4986 btrfs_set_path_blocking(path);
4987 clean_tree_block(trans, root, leaf); 4987 clean_tree_block(trans, root->fs_info, leaf);
4988 btrfs_del_leaf(trans, root, path, leaf); 4988 btrfs_del_leaf(trans, root, path, leaf);
4989 } 4989 }
4990 } else { 4990 } else {