summaryrefslogtreecommitdiff
path: root/libbcachefs/disk_groups.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-11-23 03:04:34 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-11-23 03:05:20 -0500
commitbca8b084ad754afc54e628d9db7721b90d9480b7 (patch)
treea7e1afcc7026f8ca12f6d18868cb8fc9bb100e80 /libbcachefs/disk_groups.h
parentc416528eaab6c8cd255e63a1505d4e348ff18b6e (diff)
Update bcachefs sources to da7fefde29 bcachefs: shim for userspace raid library
Diffstat (limited to 'libbcachefs/disk_groups.h')
-rw-r--r--libbcachefs/disk_groups.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/libbcachefs/disk_groups.h b/libbcachefs/disk_groups.h
index d6047283..b90b0ef5 100644
--- a/libbcachefs/disk_groups.h
+++ b/libbcachefs/disk_groups.h
@@ -54,6 +54,19 @@ static inline struct target target_decode(unsigned target)
}
const struct bch_devs_mask *bch2_target_to_mask(struct bch_fs *, unsigned);
+
+static inline struct bch_devs_mask target_rw_devs(struct bch_fs *c,
+ enum bch_data_type data_type,
+ u16 target)
+{
+ struct bch_devs_mask devs = c->rw_devs[data_type];
+ const struct bch_devs_mask *t = bch2_target_to_mask(c, target);
+
+ if (t)
+ bitmap_and(devs.d, devs.d, t->d, BCH_SB_MEMBERS_MAX);
+ return devs;
+}
+
bool bch2_dev_in_target(struct bch_fs *, unsigned, unsigned);
int bch2_disk_path_find(struct bch_sb_handle *, const char *);