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 extern const char * const bch2_write_refs[]; 13 extern const char * const bch2_dev_read_refs[]; 14 extern const char * const bch2_dev_write_refs[]; 15 16 struct bch_fs *bch2_dev_to_fs(dev_t); 17 struct bch_fs *bch2_uuid_to_fs(__uuid_t); 18 19 bool bch2_dev_state_allowed(struct bch_fs *, struct bch_dev *, 20 enum bch_member_state, int); 21 int __bch2_dev_set_state(struct bch_fs *, struct bch_dev *, 22 enum bch_member_state, int); 23 int bch2_dev_set_state(struct bch_fs *, struct bch_dev *, 24 enum bch_member_state, int); 25 26 int bch2_dev_fail(struct bch_dev *, int); 27 int bch2_dev_remove(struct bch_fs *, struct bch_dev *, int); 28 int bch2_dev_add(struct bch_fs *, const char *); 29 int bch2_dev_online(struct bch_fs *, const char *); 30 int bch2_dev_offline(struct bch_fs *, struct bch_dev *, int); 31 int bch2_dev_resize(struct bch_fs *, struct bch_dev *, u64); 32 struct bch_dev *bch2_dev_lookup(struct bch_fs *, const char *); 33 34 bool bch2_fs_emergency_read_only(struct bch_fs *); 35 bool bch2_fs_emergency_read_only2(struct bch_fs *, struct printbuf *); 36 37 bool bch2_fs_emergency_read_only_locked(struct bch_fs *); 38 void bch2_fs_read_only(struct bch_fs *); 39 40 int bch2_fs_read_write(struct bch_fs *); 41 int bch2_fs_read_write_early(struct bch_fs *); 42 43 int bch2_fs_resize_on_mount(struct bch_fs *); 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_init_rw(struct bch_fs *); 50 int bch2_fs_start(struct bch_fs *); 51 struct bch_fs *bch2_fs_open(darray_const_str *, struct bch_opts *); 52 53 extern const struct blk_holder_ops bch2_sb_handle_bdev_ops; 54 55 #endif /* _BCACHEFS_SUPER_H */ 56