diff options
author | Daniel Hill <daniel@gluo.nz> | 2022-03-15 21:36:33 +1300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:32 -0400 |
commit | 104c69745fdf7e5f8aa022f60bc9d568987bd8b8 (patch) | |
tree | 09fc07cf3d1bbe991c7a586fbac4ee24c31d1b98 /fs/bcachefs/counters.h | |
parent | 1f93726e6347938343190913cb959623e67ecf78 (diff) | |
download | lwn-104c69745fdf7e5f8aa022f60bc9d568987bd8b8.tar.gz lwn-104c69745fdf7e5f8aa022f60bc9d568987bd8b8.zip |
bcachefs: Add persistent counters
This adds a new superblock field for persisting counters
and adds a sysfs interface in counters/ exposing these counters.
The superblock field is ignored by older versions letting us avoid
an on disk version bump.
Each sysfs file outputs a counter that tracks since filesystem
creation and a counter for the current mount session.
Signed-off-by: Daniel Hill <daniel@gluo.nz>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/counters.h')
-rw-r--r-- | fs/bcachefs/counters.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/bcachefs/counters.h b/fs/bcachefs/counters.h new file mode 100644 index 000000000000..4778aa19bf34 --- /dev/null +++ b/fs/bcachefs/counters.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _BCACHEFS_COUNTERS_H +#define _BCACHEFS_COUNTERS_H + +#include "bcachefs.h" +#include "super-io.h" + + +int bch2_sb_counters_to_cpu(struct bch_fs *); +int bch2_sb_counters_from_cpu(struct bch_fs *); + +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; + +#endif // _BCACHEFS_COUNTERS_H |