From f968aa040b78bb0e6070845050b39644c24a9770 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sun, 17 Aug 2025 18:27:02 -0400 Subject: dev_name.state Get memebr state when we're getting device names. Signed-off-by: Kent Overstreet --- c_src/libbcachefs.c | 6 ++++++ c_src/libbcachefs.h | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'c_src') diff --git a/c_src/libbcachefs.c b/c_src/libbcachefs.c index 2b5ca211..017c331f 100644 --- a/c_src/libbcachefs.c +++ b/c_src/libbcachefs.c @@ -910,6 +910,8 @@ dev_names bchu_fs_get_devices(struct bchfs_handle fs) struct dirent *d; dev_names devs; + struct bch_sb *sb = bchu_read_super(fs, -1); + darray_init(&devs); while ((errno = 0), (d = readdir(dir))) { @@ -940,9 +942,13 @@ dev_names bchu_fs_get_devices(struct bchfs_handle fs) n.durability = read_file_u64(fs.sysfs_fd, durability_attr); free(durability_attr); + struct bch_member m = bch2_sb_member_get(sb, n.idx); + n.state = BCH_MEMBER_STATE(&m); + darray_push(&devs, n); } + free(sb); closedir(dir); return devs; diff --git a/c_src/libbcachefs.h b/c_src/libbcachefs.h index 7a7a9e2c..e562d138 100644 --- a/c_src/libbcachefs.h +++ b/c_src/libbcachefs.h @@ -313,11 +313,12 @@ static inline void bchu_disk_resize_journal(struct bchfs_handle fs, int bchu_data(struct bchfs_handle, struct bch_ioctl_data); struct dev_name { - unsigned idx; - char *dev; - char *label; - uuid_t uuid; - unsigned durability; + unsigned idx; + char *dev; + char *label; + uuid_t uuid; + unsigned durability; + enum bch_member_state state; }; typedef DARRAY(struct dev_name) dev_names; -- cgit v1.2.3