25
25
26
26
#include <linux/preempt.h>
27
27
28
- static inline void fs_usage_data_type_to_base (struct bch_fs_usage * fs_usage ,
28
+ static inline void fs_usage_data_type_to_base (struct bch_fs_usage_base * fs_usage ,
29
29
enum bch_data_type data_type ,
30
30
s64 sectors )
31
31
{
@@ -54,20 +54,20 @@ void bch2_fs_usage_initialize(struct bch_fs *c)
54
54
bch2_fs_usage_acc_to_base (c , i );
55
55
56
56
for (unsigned i = 0 ; i < BCH_REPLICAS_MAX ; i ++ )
57
- usage -> reserved += usage -> persistent_reserved [i ];
57
+ usage -> b . reserved += usage -> persistent_reserved [i ];
58
58
59
59
for (unsigned i = 0 ; i < c -> replicas .nr ; i ++ ) {
60
60
struct bch_replicas_entry_v1 * e =
61
61
cpu_replicas_entry (& c -> replicas , i );
62
62
63
- fs_usage_data_type_to_base (usage , e -> data_type , usage -> replicas [i ]);
63
+ fs_usage_data_type_to_base (& usage -> b , e -> data_type , usage -> replicas [i ]);
64
64
}
65
65
66
66
for_each_member_device (c , ca ) {
67
67
struct bch_dev_usage dev = bch2_dev_usage_read (ca );
68
68
69
- usage -> hidden += (dev .d [BCH_DATA_sb ].buckets +
70
- dev .d [BCH_DATA_journal ].buckets ) *
69
+ usage -> b . hidden += (dev .d [BCH_DATA_sb ].buckets +
70
+ dev .d [BCH_DATA_journal ].buckets ) *
71
71
ca -> mi .bucket_size ;
72
72
}
73
73
@@ -188,15 +188,15 @@ void bch2_fs_usage_to_text(struct printbuf *out,
188
188
prt_printf (out , "capacity:\t\t\t%llu\n" , c -> capacity );
189
189
190
190
prt_printf (out , "hidden:\t\t\t\t%llu\n" ,
191
- fs_usage -> u .hidden );
191
+ fs_usage -> u .b . hidden );
192
192
prt_printf (out , "data:\t\t\t\t%llu\n" ,
193
- fs_usage -> u .data );
193
+ fs_usage -> u .b . data );
194
194
prt_printf (out , "cached:\t\t\t\t%llu\n" ,
195
- fs_usage -> u .cached );
195
+ fs_usage -> u .b . cached );
196
196
prt_printf (out , "reserved:\t\t\t%llu\n" ,
197
- fs_usage -> u .reserved );
197
+ fs_usage -> u .b . reserved );
198
198
prt_printf (out , "nr_inodes:\t\t\t%llu\n" ,
199
- fs_usage -> u .nr_inodes );
199
+ fs_usage -> u .b . nr_inodes );
200
200
prt_printf (out , "online reserved:\t\t%llu\n" ,
201
201
fs_usage -> online_reserved );
202
202
@@ -225,10 +225,10 @@ static u64 reserve_factor(u64 r)
225
225
226
226
u64 bch2_fs_sectors_used (struct bch_fs * c , struct bch_fs_usage_online * fs_usage )
227
227
{
228
- return min (fs_usage -> u .hidden +
229
- fs_usage -> u .btree +
230
- fs_usage -> u .data +
231
- reserve_factor (fs_usage -> u .reserved +
228
+ return min (fs_usage -> u .b . hidden +
229
+ fs_usage -> u .b . btree +
230
+ fs_usage -> u .b . data +
231
+ reserve_factor (fs_usage -> u .b . reserved +
232
232
fs_usage -> online_reserved ),
233
233
c -> capacity );
234
234
}
@@ -240,17 +240,17 @@ __bch2_fs_usage_read_short(struct bch_fs *c)
240
240
u64 data , reserved ;
241
241
242
242
ret .capacity = c -> capacity -
243
- bch2_fs_usage_read_one (c , & c -> usage_base -> hidden );
243
+ bch2_fs_usage_read_one (c , & c -> usage_base -> b . hidden );
244
244
245
- data = bch2_fs_usage_read_one (c , & c -> usage_base -> data ) +
246
- bch2_fs_usage_read_one (c , & c -> usage_base -> btree );
247
- reserved = bch2_fs_usage_read_one (c , & c -> usage_base -> reserved ) +
245
+ data = bch2_fs_usage_read_one (c , & c -> usage_base -> b . data ) +
246
+ bch2_fs_usage_read_one (c , & c -> usage_base -> b . btree );
247
+ reserved = bch2_fs_usage_read_one (c , & c -> usage_base -> b . reserved ) +
248
248
percpu_u64_get (c -> online_reserved );
249
249
250
250
ret .used = min (ret .capacity , data + reserve_factor (reserved ));
251
251
ret .free = ret .capacity - ret .used ;
252
252
253
- ret .nr_inodes = bch2_fs_usage_read_one (c , & c -> usage_base -> nr_inodes );
253
+ ret .nr_inodes = bch2_fs_usage_read_one (c , & c -> usage_base -> b . nr_inodes );
254
254
255
255
return ret ;
256
256
}
@@ -308,9 +308,9 @@ void bch2_dev_usage_update(struct bch_fs *c, struct bch_dev *ca,
308
308
fs_usage = fs_usage_ptr (c , journal_seq , gc );
309
309
310
310
if (data_type_is_hidden (old -> data_type ))
311
- fs_usage -> hidden -= ca -> mi .bucket_size ;
311
+ fs_usage -> b . hidden -= ca -> mi .bucket_size ;
312
312
if (data_type_is_hidden (new -> data_type ))
313
- fs_usage -> hidden += ca -> mi .bucket_size ;
313
+ fs_usage -> b . hidden += ca -> mi .bucket_size ;
314
314
315
315
u = dev_usage_ptr (ca , journal_seq , gc );
316
316
@@ -359,7 +359,7 @@ static inline int __update_replicas(struct bch_fs *c,
359
359
if (idx < 0 )
360
360
return -1 ;
361
361
362
- fs_usage_data_type_to_base (fs_usage , r -> data_type , sectors );
362
+ fs_usage_data_type_to_base (& fs_usage -> b , r -> data_type , sectors );
363
363
fs_usage -> replicas [idx ] += sectors ;
364
364
return 0 ;
365
365
}
@@ -394,7 +394,7 @@ int bch2_update_replicas(struct bch_fs *c, struct bkey_s_c k,
394
394
395
395
preempt_disable ();
396
396
fs_usage = fs_usage_ptr (c , journal_seq , gc );
397
- fs_usage_data_type_to_base (fs_usage , r -> data_type , sectors );
397
+ fs_usage_data_type_to_base (& fs_usage -> b , r -> data_type , sectors );
398
398
fs_usage -> replicas [idx ] += sectors ;
399
399
preempt_enable ();
400
400
err :
@@ -677,11 +677,11 @@ void bch2_trans_fs_usage_revert(struct btree_trans *trans,
677
677
BUG_ON (__update_replicas (c , dst , & d -> r , - d -> delta ));
678
678
}
679
679
680
- dst -> nr_inodes -= deltas -> nr_inodes ;
680
+ dst -> b . nr_inodes -= deltas -> nr_inodes ;
681
681
682
682
for (i = 0 ; i < BCH_REPLICAS_MAX ; i ++ ) {
683
683
added -= deltas -> persistent_reserved [i ];
684
- dst -> reserved -= deltas -> persistent_reserved [i ];
684
+ dst -> b . reserved -= deltas -> persistent_reserved [i ];
685
685
dst -> persistent_reserved [i ] -= deltas -> persistent_reserved [i ];
686
686
}
687
687
@@ -723,11 +723,11 @@ int bch2_trans_fs_usage_apply(struct btree_trans *trans,
723
723
goto need_mark ;
724
724
}
725
725
726
- dst -> nr_inodes += deltas -> nr_inodes ;
726
+ dst -> b . nr_inodes += deltas -> nr_inodes ;
727
727
728
728
for (i = 0 ; i < BCH_REPLICAS_MAX ; i ++ ) {
729
729
added += deltas -> persistent_reserved [i ];
730
- dst -> reserved += deltas -> persistent_reserved [i ];
730
+ dst -> b . reserved += deltas -> persistent_reserved [i ];
731
731
dst -> persistent_reserved [i ] += deltas -> persistent_reserved [i ];
732
732
}
733
733
@@ -1084,7 +1084,7 @@ static int __trigger_reservation(struct btree_trans *trans,
1084
1084
struct bch_fs_usage * fs_usage = this_cpu_ptr (c -> usage_gc );
1085
1085
1086
1086
replicas = min (replicas , ARRAY_SIZE (fs_usage -> persistent_reserved ));
1087
- fs_usage -> reserved += sectors ;
1087
+ fs_usage -> b . reserved += sectors ;
1088
1088
fs_usage -> persistent_reserved [replicas - 1 ] += sectors ;
1089
1089
1090
1090
preempt_enable ();
0 commit comments