diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-11-23 03:04:34 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-11-23 03:05:20 -0500 |
commit | bca8b084ad754afc54e628d9db7721b90d9480b7 (patch) | |
tree | a7e1afcc7026f8ca12f6d18868cb8fc9bb100e80 /libbcachefs/disk_groups.h | |
parent | c416528eaab6c8cd255e63a1505d4e348ff18b6e (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.h | 13 |
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 *); |