1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _BCACHEFS_SUPER_H |
3 | #define _BCACHEFS_SUPER_H |
4 | |
5 | #include "extents.h" |
6 | |
7 | #include "bcachefs_ioctl.h" |
8 | |
9 | #include <linux/math64.h> |
10 | |
11 | extern const char * const bch2_fs_flag_strs[]; |
12 | |
13 | struct bch_fs *bch2_dev_to_fs(dev_t); |
14 | struct bch_fs *bch2_uuid_to_fs(__uuid_t); |
15 | |
16 | bool bch2_dev_state_allowed(struct bch_fs *, struct bch_dev *, |
17 | enum bch_member_state, int); |
18 | int __bch2_dev_set_state(struct bch_fs *, struct bch_dev *, |
19 | enum bch_member_state, int); |
20 | int bch2_dev_set_state(struct bch_fs *, struct bch_dev *, |
21 | enum bch_member_state, int); |
22 | |
23 | int bch2_dev_fail(struct bch_dev *, int); |
24 | int bch2_dev_remove(struct bch_fs *, struct bch_dev *, int); |
25 | int bch2_dev_add(struct bch_fs *, const char *); |
26 | int bch2_dev_online(struct bch_fs *, const char *); |
27 | int bch2_dev_offline(struct bch_fs *, struct bch_dev *, int); |
28 | int bch2_dev_resize(struct bch_fs *, struct bch_dev *, u64); |
29 | struct bch_dev *bch2_dev_lookup(struct bch_fs *, const char *); |
30 | |
31 | bool bch2_fs_emergency_read_only(struct bch_fs *); |
32 | void bch2_fs_read_only(struct bch_fs *); |
33 | |
34 | int bch2_fs_read_write(struct bch_fs *); |
35 | int bch2_fs_read_write_early(struct bch_fs *); |
36 | |
37 | /* |
38 | * Only for use in the recovery/fsck path: |
39 | */ |
40 | static inline void bch2_fs_lazy_rw(struct bch_fs *c) |
41 | { |
42 | if (!test_bit(BCH_FS_rw, &c->flags) && |
43 | !test_bit(BCH_FS_was_rw, &c->flags)) |
44 | bch2_fs_read_write_early(c); |
45 | } |
46 | |
47 | void __bch2_fs_stop(struct bch_fs *); |
48 | void bch2_fs_free(struct bch_fs *); |
49 | void bch2_fs_stop(struct bch_fs *); |
50 | |
51 | int bch2_fs_start(struct bch_fs *); |
52 | struct bch_fs *bch2_fs_open(char * const *, unsigned, struct bch_opts); |
53 | |
54 | #endif /* _BCACHEFS_SUPER_H */ |
55 | |