diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-30 22:34:47 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-30 22:34:54 -0400 |
commit | fad6d13aa55f96e01cc6ff516cdfea53b2fc9eb1 (patch) | |
tree | bf9577b1d4d226338382dcfe60226ca89d0d2631 | |
parent | 3c79da3ddd874937fe8b5a7c5772d81d7e16e628 (diff) |
fixup! bcachefs: Add persistent counters
-rw-r--r-- | fs/bcachefs/counters.c | 12 | ||||
-rw-r--r-- | fs/bcachefs/counters.h | 8 | ||||
-rw-r--r-- | fs/bcachefs/super.c | 1 |
3 files changed, 11 insertions, 10 deletions
diff --git a/fs/bcachefs/counters.c b/fs/bcachefs/counters.c index 25a6b38b18b5..6bf267dfd051 100644 --- a/fs/bcachefs/counters.c +++ b/fs/bcachefs/counters.c @@ -87,18 +87,18 @@ int bch2_sb_counters_from_cpu(struct bch_fs *c) return 0; } -int bch2_fs_counters_init(struct bch_fs *c) +void bch2_fs_counters_exit(struct bch_fs *c) { - int ret = 0; + free_percpu(c->counters); +} +int bch2_fs_counters_init(struct bch_fs *c) +{ c->counters = __alloc_percpu(sizeof(u64) * BCH_COUNTER_NR, sizeof(u64)); - if (!c->counters) return -ENOMEM; - ret = bch2_sb_counters_to_cpu(c); - - return ret; + return bch2_sb_counters_to_cpu(c); } const struct bch_sb_field_ops bch_sb_field_ops_counters = { diff --git a/fs/bcachefs/counters.h b/fs/bcachefs/counters.h index 1f3207a5ee16..4778aa19bf34 100644 --- a/fs/bcachefs/counters.h +++ b/fs/bcachefs/counters.h @@ -6,11 +6,11 @@ #include "super-io.h" -int bch2_sb_counters_to_cpu(struct bch_fs *c); +int bch2_sb_counters_to_cpu(struct bch_fs *); +int bch2_sb_counters_from_cpu(struct bch_fs *); -int bch2_sb_counters_from_cpu(struct bch_fs *c); - -int bch2_fs_counters_init(struct bch_fs *c); +void bch2_fs_counters_exit(struct bch_fs *); +int bch2_fs_counters_init(struct bch_fs *); extern const struct bch_sb_field_ops bch_sb_field_ops_counters; diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c index 82a9ac147b32..c7638a3b6c1d 100644 --- a/fs/bcachefs/super.c +++ b/fs/bcachefs/super.c @@ -422,6 +422,7 @@ static void __bch2_fs_free(struct bch_fs *c) for (i = 0; i < BCH_TIME_STAT_NR; i++) bch2_time_stats_exit(&c->times[i]); + bch2_fs_counters_exit(c); bch2_fs_snapshots_exit(c); bch2_fs_quota_exit(c); bch2_fs_fsio_exit(c); |