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 struct bch_fs *bch2_dev_to_fs(dev_t); 12 struct bch_fs *bch2_uuid_to_fs(__uuid_t); 13 14 bool bch2_dev_state_allowed(struct bch_fs *, struct bch_dev *, 15 enum bch_member_state, int); 16 int __bch2_dev_set_state(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 21 int bch2_dev_fail(struct bch_dev *, int); 22 int bch2_dev_remove(struct bch_fs *, struct bch_dev *, int); 23 int bch2_dev_add(struct bch_fs *, const char *); 24 int bch2_dev_online(struct bch_fs *, const char *); 25 int bch2_dev_offline(struct bch_fs *, struct bch_dev *, int); 26 int bch2_dev_resize(struct bch_fs *, struct bch_dev *, u64); 27 struct bch_dev *bch2_dev_lookup(struct bch_fs *, const char *); 28 29 bool bch2_fs_emergency_read_only(struct bch_fs *); 30 void bch2_fs_read_only(struct bch_fs *); 31 32 int bch2_fs_read_write(struct bch_fs *); 33 int bch2_fs_read_write_early(struct bch_fs *); 34 35 /* 36 * Only for use in the recovery/fsck path: 37 */ 38 static inline void bch2_fs_lazy_rw(struct bch_fs *c) 39 { 40 if (!test_bit(BCH_FS_RW, &c->flags) && 41 !test_bit(BCH_FS_WAS_RW, &c->flags)) 42 bch2_fs_read_write_early(c); 43 } 44 45 void __bch2_fs_stop(struct bch_fs *); 46 void bch2_fs_free(struct bch_fs *); 47 void bch2_fs_stop(struct bch_fs *); 48 49 int bch2_fs_start(struct bch_fs *); 50 struct bch_fs *bch2_fs_open(char * const *, unsigned, struct bch_opts); 51 52 #endif /* _BCACHEFS_SUPER_H */ 53