1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_SYSFS_H_
3#define _BCACHEFS_SYSFS_H_
4
5#include <linux/sysfs.h>
6
7#ifndef NO_BCACHEFS_SYSFS
8
9struct attribute;
10struct sysfs_ops;
11
12extern struct attribute *bch2_fs_files[];
13extern struct attribute *bch2_fs_counters_files[];
14extern struct attribute *bch2_fs_internal_files[];
15extern struct attribute *bch2_fs_opts_dir_files[];
16extern struct attribute *bch2_fs_time_stats_files[];
17extern struct attribute *bch2_dev_files[];
18
19extern const struct sysfs_ops bch2_fs_sysfs_ops;
20extern const struct sysfs_ops bch2_fs_counters_sysfs_ops;
21extern const struct sysfs_ops bch2_fs_internal_sysfs_ops;
22extern const struct sysfs_ops bch2_fs_opts_dir_sysfs_ops;
23extern const struct sysfs_ops bch2_fs_time_stats_sysfs_ops;
24extern const struct sysfs_ops bch2_dev_sysfs_ops;
25
26int bch2_opts_create_sysfs_files(struct kobject *);
27
28#else
29
30static struct attribute *bch2_fs_files[] = {};
31static struct attribute *bch2_fs_counters_files[] = {};
32static struct attribute *bch2_fs_internal_files[] = {};
33static struct attribute *bch2_fs_opts_dir_files[] = {};
34static struct attribute *bch2_fs_time_stats_files[] = {};
35static struct attribute *bch2_dev_files[] = {};
36
37static const struct sysfs_ops bch2_fs_sysfs_ops;
38static const struct sysfs_ops bch2_fs_counters_sysfs_ops;
39static const struct sysfs_ops bch2_fs_internal_sysfs_ops;
40static const struct sysfs_ops bch2_fs_opts_dir_sysfs_ops;
41static const struct sysfs_ops bch2_fs_time_stats_sysfs_ops;
42static const struct sysfs_ops bch2_dev_sysfs_ops;
43
44static inline int bch2_opts_create_sysfs_files(struct kobject *kobj) { return 0; }
45
46#endif /* NO_BCACHEFS_SYSFS */
47
48#endif  /* _BCACHEFS_SYSFS_H_ */
49