diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-02-14 20:39:17 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:16 -0400 |
commit | ecf37a4a80ec029d640b9c18f87880d4ec4a726f (patch) | |
tree | d04e585d827cf53eb205f7933eb7f894bc2f5a34 /fs/bcachefs/buckets.h | |
parent | 768ac63924775d9fe2e76fbb254704d5ee3bcb85 (diff) |
bcachefs: fs_usage_u64s()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/buckets.h')
-rw-r--r-- | fs/bcachefs/buckets.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/bcachefs/buckets.h b/fs/bcachefs/buckets.h index 67a1d17610f3..5f0b5a6ec9ad 100644 --- a/fs/bcachefs/buckets.h +++ b/fs/bcachefs/buckets.h @@ -212,14 +212,18 @@ static inline u64 dev_buckets_free(struct bch_fs *c, struct bch_dev *ca) /* Filesystem usage: */ -static inline struct bch_fs_usage *bch2_fs_usage_get_scratch(struct bch_fs *c) +static inline unsigned fs_usage_u64s(struct bch_fs *c) { - struct bch_fs_usage *ret; - ret = this_cpu_ptr(c->usage_scratch); + return sizeof(struct bch_fs_usage) / sizeof(u64) + + READ_ONCE(c->replicas.nr); +} - memset(ret, 0, sizeof(*ret) + c->replicas.nr * sizeof(u64)); +static inline struct bch_fs_usage *bch2_fs_usage_get_scratch(struct bch_fs *c) +{ + struct bch_fs_usage *ret = this_cpu_ptr(c->usage_scratch); + memset(ret, 0, fs_usage_u64s(c) * sizeof(u64)); return ret; } |