@@ -1357,8 +1357,7 @@ tree_mod_log_rewind(struct btrfs_fs_info *fs_info, struct btrfs_path *path,
13571357
13581358 if (tm -> op == MOD_LOG_KEY_REMOVE_WHILE_FREEING ) {
13591359 BUG_ON (tm -> slot != 0 );
1360- eb_rewin = alloc_dummy_extent_buffer (fs_info , eb -> start ,
1361- eb -> len );
1360+ eb_rewin = alloc_dummy_extent_buffer (fs_info , eb -> start );
13621361 if (!eb_rewin ) {
13631362 btrfs_tree_read_unlock_blocking (eb );
13641363 free_extent_buffer (eb );
@@ -1386,7 +1385,7 @@ tree_mod_log_rewind(struct btrfs_fs_info *fs_info, struct btrfs_path *path,
13861385 btrfs_tree_read_lock (eb_rewin );
13871386 __tree_mod_log_rewind (fs_info , eb_rewin , time_seq , tm );
13881387 WARN_ON (btrfs_header_nritems (eb_rewin ) >
1389- BTRFS_NODEPTRS_PER_BLOCK (fs_info -> tree_root ));
1388+ BTRFS_NODEPTRS_PER_BLOCK (fs_info ));
13901389
13911390 return eb_rewin ;
13921391}
@@ -1439,8 +1438,7 @@ get_old_root(struct btrfs_root *root, u64 time_seq)
14391438 } else if (old_root ) {
14401439 btrfs_tree_read_unlock (eb_root );
14411440 free_extent_buffer (eb_root );
1442- eb = alloc_dummy_extent_buffer (root -> fs_info , logical ,
1443- root -> nodesize );
1441+ eb = alloc_dummy_extent_buffer (root -> fs_info , logical );
14441442 } else {
14451443 btrfs_set_lock_blocking_rw (eb_root , BTRFS_READ_LOCK );
14461444 eb = btrfs_clone_extent_buffer (eb_root );
@@ -1463,7 +1461,7 @@ get_old_root(struct btrfs_root *root, u64 time_seq)
14631461 __tree_mod_log_rewind (root -> fs_info , eb , time_seq , tm );
14641462 else
14651463 WARN_ON (btrfs_header_level (eb ) != 0 );
1466- WARN_ON (btrfs_header_nritems (eb ) > BTRFS_NODEPTRS_PER_BLOCK (root ));
1464+ WARN_ON (btrfs_header_nritems (eb ) > BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ));
14671465
14681466 return eb ;
14691467}
@@ -1634,7 +1632,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
16341632 WARN_ON (trans -> transid != root -> fs_info -> generation );
16351633
16361634 parent_nritems = btrfs_header_nritems (parent );
1637- blocksize = root -> nodesize ;
1635+ blocksize = root -> fs_info -> nodesize ;
16381636 end_slot = parent_nritems - 1 ;
16391637
16401638 if (parent_nritems <= 1 )
@@ -1940,7 +1938,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
19401938 return 0 ;
19411939 }
19421940 if (btrfs_header_nritems (mid ) >
1943- BTRFS_NODEPTRS_PER_BLOCK (root ) / 4 )
1941+ BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) / 4 )
19441942 return 0 ;
19451943
19461944 left = read_node_slot (root , parent , pslot - 1 );
@@ -2127,7 +2125,7 @@ static noinline int push_nodes_for_insert(struct btrfs_trans_handle *trans,
21272125 btrfs_set_lock_blocking (left );
21282126
21292127 left_nr = btrfs_header_nritems (left );
2130- if (left_nr >= BTRFS_NODEPTRS_PER_BLOCK (root ) - 1 ) {
2128+ if (left_nr >= BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) - 1 ) {
21312129 wret = 1 ;
21322130 } else {
21332131 ret = btrfs_cow_block (trans , root , left , parent ,
@@ -2181,7 +2179,7 @@ static noinline int push_nodes_for_insert(struct btrfs_trans_handle *trans,
21812179 btrfs_set_lock_blocking (right );
21822180
21832181 right_nr = btrfs_header_nritems (right );
2184- if (right_nr >= BTRFS_NODEPTRS_PER_BLOCK (root ) - 1 ) {
2182+ if (right_nr >= BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) - 1 ) {
21852183 wret = 1 ;
21862184 } else {
21872185 ret = btrfs_cow_block (trans , root , right ,
@@ -2252,7 +2250,7 @@ static void reada_for_search(struct btrfs_root *root,
22522250 node = path -> nodes [level ];
22532251
22542252 search = btrfs_node_blockptr (node , slot );
2255- blocksize = root -> nodesize ;
2253+ blocksize = root -> fs_info -> nodesize ;
22562254 eb = find_extent_buffer (root -> fs_info , search );
22572255 if (eb ) {
22582256 free_extent_buffer (eb );
@@ -2521,7 +2519,7 @@ setup_nodes_for_search(struct btrfs_trans_handle *trans,
25212519{
25222520 int ret ;
25232521 if ((p -> search_for_split || ins_len > 0 ) && btrfs_header_nritems (b ) >=
2524- BTRFS_NODEPTRS_PER_BLOCK (root ) - 3 ) {
2522+ BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) - 3 ) {
25252523 int sret ;
25262524
25272525 if (* write_lock_level < level + 1 ) {
@@ -2542,7 +2540,7 @@ setup_nodes_for_search(struct btrfs_trans_handle *trans,
25422540 }
25432541 b = p -> nodes [level ];
25442542 } else if (ins_len < 0 && btrfs_header_nritems (b ) <
2545- BTRFS_NODEPTRS_PER_BLOCK (root ) / 2 ) {
2543+ BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) / 2 ) {
25462544 int sret ;
25472545
25482546 if (* write_lock_level < level + 1 ) {
@@ -3195,7 +3193,7 @@ static int push_node_left(struct btrfs_trans_handle *trans,
31953193
31963194 src_nritems = btrfs_header_nritems (src );
31973195 dst_nritems = btrfs_header_nritems (dst );
3198- push_items = BTRFS_NODEPTRS_PER_BLOCK (root ) - dst_nritems ;
3196+ push_items = BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) - dst_nritems ;
31993197 WARN_ON (btrfs_header_generation (src ) != trans -> transid );
32003198 WARN_ON (btrfs_header_generation (dst ) != trans -> transid );
32013199
@@ -3274,7 +3272,7 @@ static int balance_node_right(struct btrfs_trans_handle *trans,
32743272
32753273 src_nritems = btrfs_header_nritems (src );
32763274 dst_nritems = btrfs_header_nritems (dst );
3277- push_items = BTRFS_NODEPTRS_PER_BLOCK (root ) - dst_nritems ;
3275+ push_items = BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) - dst_nritems ;
32783276 if (push_items <= 0 )
32793277 return 1 ;
32803278
@@ -3346,7 +3344,7 @@ static noinline int insert_new_root(struct btrfs_trans_handle *trans,
33463344 if (IS_ERR (c ))
33473345 return PTR_ERR (c );
33483346
3349- root_add_used (root , root -> nodesize );
3347+ root_add_used (root , root -> fs_info -> nodesize );
33503348
33513349 memzero_extent_buffer (c , 0 , sizeof (struct btrfs_header ));
33523350 btrfs_set_header_nritems (c , 1 );
@@ -3404,7 +3402,7 @@ static void insert_ptr(struct btrfs_trans_handle *trans,
34043402 lower = path -> nodes [level ];
34053403 nritems = btrfs_header_nritems (lower );
34063404 BUG_ON (slot > nritems );
3407- BUG_ON (nritems == BTRFS_NODEPTRS_PER_BLOCK (root ));
3405+ BUG_ON (nritems == BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ));
34083406 if (slot != nritems ) {
34093407 if (level )
34103408 tree_mod_log_eb_move (root -> fs_info , lower , slot + 1 ,
@@ -3467,7 +3465,7 @@ static noinline int split_node(struct btrfs_trans_handle *trans,
34673465 ret = push_nodes_for_insert (trans , root , path , level );
34683466 c = path -> nodes [level ];
34693467 if (!ret && btrfs_header_nritems (c ) <
3470- BTRFS_NODEPTRS_PER_BLOCK (root ) - 3 )
3468+ BTRFS_NODEPTRS_PER_BLOCK (root -> fs_info ) - 3 )
34713469 return 0 ;
34723470 if (ret < 0 )
34733471 return ret ;
@@ -3482,7 +3480,7 @@ static noinline int split_node(struct btrfs_trans_handle *trans,
34823480 if (IS_ERR (split ))
34833481 return PTR_ERR (split );
34843482
3485- root_add_used (root , root -> nodesize );
3483+ root_add_used (root , root -> fs_info -> nodesize );
34863484
34873485 memzero_extent_buffer (split , 0 , sizeof (struct btrfs_header ));
34883486 btrfs_set_header_level (split , btrfs_header_level (c ));
@@ -3564,11 +3562,12 @@ noinline int btrfs_leaf_free_space(struct btrfs_root *root,
35643562{
35653563 int nritems = btrfs_header_nritems (leaf );
35663564 int ret ;
3567- ret = BTRFS_LEAF_DATA_SIZE (root ) - leaf_space_used (leaf , 0 , nritems );
3565+ ret = BTRFS_LEAF_DATA_SIZE (root -> fs_info ) - leaf_space_used (leaf , 0 , nritems );
35683566 if (ret < 0 ) {
35693567 btrfs_crit (root -> fs_info ,
35703568 "leaf free space ret %d, leaf data size %lu, used %d nritems %d" ,
3571- ret , (unsigned long ) BTRFS_LEAF_DATA_SIZE (root ),
3569+ ret ,
3570+ (unsigned long ) BTRFS_LEAF_DATA_SIZE (root -> fs_info ),
35723571 leaf_space_used (leaf , 0 , nritems ), nritems );
35733572 }
35743573 return ret ;
@@ -3655,11 +3654,11 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
36553654 memmove_extent_buffer (right ,
36563655 btrfs_leaf_data (right ) + data_end - push_space ,
36573656 btrfs_leaf_data (right ) + data_end ,
3658- BTRFS_LEAF_DATA_SIZE (root ) - data_end );
3657+ BTRFS_LEAF_DATA_SIZE (root -> fs_info ) - data_end );
36593658
36603659 /* copy from the left data area */
36613660 copy_extent_buffer (right , left , btrfs_leaf_data (right ) +
3662- BTRFS_LEAF_DATA_SIZE (root ) - push_space ,
3661+ BTRFS_LEAF_DATA_SIZE (root -> fs_info ) - push_space ,
36633662 btrfs_leaf_data (left ) + leaf_data_end (root , left ),
36643663 push_space );
36653664
@@ -3675,7 +3674,7 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
36753674 /* update the item pointers */
36763675 right_nritems += push_items ;
36773676 btrfs_set_header_nritems (right , right_nritems );
3678- push_space = BTRFS_LEAF_DATA_SIZE (root );
3677+ push_space = BTRFS_LEAF_DATA_SIZE (root -> fs_info );
36793678 for (i = 0 ; i < right_nritems ; i ++ ) {
36803679 item = btrfs_item_nr (i );
36813680 push_space -= btrfs_token_item_size (right , item , & token );
@@ -3871,7 +3870,7 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
38713870 btrfs_item_nr_offset (0 ),
38723871 push_items * sizeof (struct btrfs_item ));
38733872
3874- push_space = BTRFS_LEAF_DATA_SIZE (root ) -
3873+ push_space = BTRFS_LEAF_DATA_SIZE (root -> fs_info ) -
38753874 btrfs_item_offset_nr (right , push_items - 1 );
38763875
38773876 copy_extent_buffer (left , right , btrfs_leaf_data (left ) +
@@ -3890,7 +3889,7 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
38903889
38913890 ioff = btrfs_token_item_offset (left , item , & token );
38923891 btrfs_set_token_item_offset (left , item ,
3893- ioff - (BTRFS_LEAF_DATA_SIZE (root ) - old_left_item_size ),
3892+ ioff - (BTRFS_LEAF_DATA_SIZE (root -> fs_info ) - old_left_item_size ),
38943893 & token );
38953894 }
38963895 btrfs_set_header_nritems (left , old_left_nritems + push_items );
@@ -3904,7 +3903,7 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
39043903 push_space = btrfs_item_offset_nr (right , push_items - 1 ) -
39053904 leaf_data_end (root , right );
39063905 memmove_extent_buffer (right , btrfs_leaf_data (right ) +
3907- BTRFS_LEAF_DATA_SIZE (root ) - push_space ,
3906+ BTRFS_LEAF_DATA_SIZE (root -> fs_info ) - push_space ,
39083907 btrfs_leaf_data (right ) +
39093908 leaf_data_end (root , right ), push_space );
39103909
@@ -3915,7 +3914,7 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
39153914 }
39163915 right_nritems -= push_items ;
39173916 btrfs_set_header_nritems (right , right_nritems );
3918- push_space = BTRFS_LEAF_DATA_SIZE (root );
3917+ push_space = BTRFS_LEAF_DATA_SIZE (root -> fs_info );
39193918 for (i = 0 ; i < right_nritems ; i ++ ) {
39203919 item = btrfs_item_nr (i );
39213920
@@ -4054,11 +4053,11 @@ static noinline void copy_for_split(struct btrfs_trans_handle *trans,
40544053 nritems * sizeof (struct btrfs_item ));
40554054
40564055 copy_extent_buffer (right , l ,
4057- btrfs_leaf_data (right ) + BTRFS_LEAF_DATA_SIZE (root ) -
4056+ btrfs_leaf_data (right ) + BTRFS_LEAF_DATA_SIZE (root -> fs_info ) -
40584057 data_copy_size , btrfs_leaf_data (l ) +
40594058 leaf_data_end (root , l ), data_copy_size );
40604059
4061- rt_data_off = BTRFS_LEAF_DATA_SIZE (root ) -
4060+ rt_data_off = BTRFS_LEAF_DATA_SIZE (root -> fs_info ) -
40624061 btrfs_item_end_nr (l , mid );
40634062
40644063 for (i = 0 ; i < nritems ; i ++ ) {
@@ -4182,7 +4181,7 @@ static noinline int split_leaf(struct btrfs_trans_handle *trans,
41824181 l = path -> nodes [0 ];
41834182 slot = path -> slots [0 ];
41844183 if (extend && data_size + btrfs_item_size_nr (l , slot ) +
4185- sizeof (struct btrfs_item ) > BTRFS_LEAF_DATA_SIZE (root ))
4184+ sizeof (struct btrfs_item ) > BTRFS_LEAF_DATA_SIZE (root -> fs_info ))
41864185 return - EOVERFLOW ;
41874186
41884187 /* first try to make some room by pushing left and right */
@@ -4224,14 +4223,14 @@ static noinline int split_leaf(struct btrfs_trans_handle *trans,
42244223 if (mid <= slot ) {
42254224 if (nritems == 1 ||
42264225 leaf_space_used (l , mid , nritems - mid ) + data_size >
4227- BTRFS_LEAF_DATA_SIZE (root )) {
4226+ BTRFS_LEAF_DATA_SIZE (root -> fs_info )) {
42284227 if (slot >= nritems ) {
42294228 split = 0 ;
42304229 } else {
42314230 mid = slot ;
42324231 if (mid != nritems &&
42334232 leaf_space_used (l , mid , nritems - mid ) +
4234- data_size > BTRFS_LEAF_DATA_SIZE (root )) {
4233+ data_size > BTRFS_LEAF_DATA_SIZE (root -> fs_info )) {
42354234 if (data_size && !tried_avoid_double )
42364235 goto push_for_double ;
42374236 split = 2 ;
@@ -4240,7 +4239,7 @@ static noinline int split_leaf(struct btrfs_trans_handle *trans,
42404239 }
42414240 } else {
42424241 if (leaf_space_used (l , 0 , mid ) + data_size >
4243- BTRFS_LEAF_DATA_SIZE (root )) {
4242+ BTRFS_LEAF_DATA_SIZE (root -> fs_info )) {
42444243 if (!extend && data_size && slot == 0 ) {
42454244 split = 0 ;
42464245 } else if ((extend || !data_size ) && slot == 0 ) {
@@ -4249,7 +4248,7 @@ static noinline int split_leaf(struct btrfs_trans_handle *trans,
42494248 mid = slot ;
42504249 if (mid != nritems &&
42514250 leaf_space_used (l , mid , nritems - mid ) +
4252- data_size > BTRFS_LEAF_DATA_SIZE (root )) {
4251+ data_size > BTRFS_LEAF_DATA_SIZE (root -> fs_info )) {
42534252 if (data_size && !tried_avoid_double )
42544253 goto push_for_double ;
42554254 split = 2 ;
@@ -4268,7 +4267,7 @@ static noinline int split_leaf(struct btrfs_trans_handle *trans,
42684267 if (IS_ERR (right ))
42694268 return PTR_ERR (right );
42704269
4271- root_add_used (root , root -> nodesize );
4270+ root_add_used (root , root -> fs_info -> nodesize );
42724271
42734272 memzero_extent_buffer (right , 0 , sizeof (struct btrfs_header ));
42744273 btrfs_set_header_bytenr (right , right -> start );
@@ -5001,7 +5000,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
50015000 }
50025001
50035002 /* delete the leaf if it is mostly empty */
5004- if (used < BTRFS_LEAF_DATA_SIZE (root ) / 3 ) {
5003+ if (used < BTRFS_LEAF_DATA_SIZE (root -> fs_info ) / 3 ) {
50055004 /* push_leaf_left fixes the path.
50065005 * make sure the path still points to our leaf
50075006 * for possible call to del_ptr below
@@ -5369,9 +5368,10 @@ int btrfs_compare_trees(struct btrfs_root *left_root,
53695368 goto out ;
53705369 }
53715370
5372- tmp_buf = kmalloc (left_root -> nodesize , GFP_KERNEL | __GFP_NOWARN );
5371+ tmp_buf = kmalloc (left_root -> fs_info -> nodesize ,
5372+ GFP_KERNEL | __GFP_NOWARN );
53735373 if (!tmp_buf ) {
5374- tmp_buf = vmalloc (left_root -> nodesize );
5374+ tmp_buf = vmalloc (left_root -> fs_info -> nodesize );
53755375 if (!tmp_buf ) {
53765376 ret = - ENOMEM ;
53775377 goto out ;
0 commit comments