summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/sb-members.c
diff options
context:
space:
mode:
authorHunter Shaffer <huntershaffer182456@gmail.com>2023-09-24 23:55:37 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:10:15 -0400
commit1241df5872b439ff1e5a8c70e0ce82345264904f (patch)
tree6830d32daf5e3481d399b52a1224a5093e914186 /fs/bcachefs/sb-members.c
parent73bbeaa2de1d429590a1b5ddd706dfeaf6d7d0e1 (diff)
downloadlinux-stable-1241df5872b439ff1e5a8c70e0ce82345264904f.tar.gz
linux-stable-1241df5872b439ff1e5a8c70e0ce82345264904f.tar.bz2
linux-stable-1241df5872b439ff1e5a8c70e0ce82345264904f.zip
bcachefs: Add new helper to retrieve bch_member from sb
Prep work for introducing bch_sb_field_members_v2 - introduce new helpers that will check for members_v2 if it exists, otherwise using v1 Signed-off-by: Hunter Shaffer <huntershaffer182456@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/sb-members.c')
-rw-r--r--fs/bcachefs/sb-members.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/bcachefs/sb-members.c b/fs/bcachefs/sb-members.c
index 16a2b3389525..0be51d082043 100644
--- a/fs/bcachefs/sb-members.c
+++ b/fs/bcachefs/sb-members.c
@@ -7,6 +7,23 @@
#include "super-io.h"
/* Code for bch_sb_field_members: */
+static struct bch_member *members_v1_get_mut(struct bch_sb_field_members *mi, int i)
+{
+ return mi->members + i;
+}
+
+static struct bch_member members_v1_get(struct bch_sb_field_members *mi, int i)
+{
+ struct bch_member ret, *p = members_v1_get_mut(mi, i);
+ memset(&ret, 0, sizeof(ret));
+ memcpy(&ret, p, min_t(size_t, sizeof(struct bch_member), sizeof(ret))); return ret;
+}
+
+struct bch_member bch2_sb_member_get(struct bch_sb *sb, int i)
+{
+ struct bch_sb_field_members *mi1 = bch2_sb_get_members(sb);
+ return members_v1_get(mi1, i);
+}
static int bch2_sb_members_validate(struct bch_sb *sb,
struct bch_sb_field *f,