From 3f7b9713dae09df31067c6d1d33c6eb1f617529f Mon Sep 17 00:00:00 2001 From: Hunter Shaffer Date: Mon, 25 Sep 2023 00:02:56 -0400 Subject: bcachefs: New superblock section members_v2 members_v2 has dynamically resizable entries so that we can extend bch_member. The members can no longer be accessed with simple array indexing Instead members_v2_get is used to find a member's exact location within the array and returns a copy of that member. Alternatively member_v2_get_mut retrieves a mutable point to a member. Signed-off-by: Hunter Shaffer Signed-off-by: Kent Overstreet --- fs/bcachefs/sb-members.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'fs/bcachefs/sb-members.h') diff --git a/fs/bcachefs/sb-members.h b/fs/bcachefs/sb-members.h index 85d1af6a990c..72958facbb4f 100644 --- a/fs/bcachefs/sb-members.h +++ b/fs/bcachefs/sb-members.h @@ -2,6 +2,9 @@ #ifndef _BCACHEFS_SB_MEMBERS_H #define _BCACHEFS_SB_MEMBERS_H +int bch2_members_v2_init(struct bch_fs *c); +int bch_members_cpy_v2_v1(struct bch_sb_handle *disk_sb); +struct bch_member *bch2_members_v2_get_mut(struct bch_sb *sb, int i); struct bch_member bch2_sb_member_get(struct bch_sb *sb, int i); static inline bool bch2_dev_is_online(struct bch_dev *ca) @@ -173,6 +176,8 @@ static inline struct bch_devs_mask bch2_online_devs(struct bch_fs *c) return devs; } +extern const struct bch_sb_field_ops bch_sb_field_ops_members_v2; + extern const struct bch_sb_field_ops bch_sb_field_ops_members; #endif /* _BCACHEFS_SB_MEMBERS_H */ -- cgit v1.2.3