diff options
Diffstat (limited to 'libbcachefs/super.h')
-rw-r--r-- | libbcachefs/super.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libbcachefs/super.h b/libbcachefs/super.h index 18e36c08..eb1d2f3d 100644 --- a/libbcachefs/super.h +++ b/libbcachefs/super.h @@ -35,6 +35,30 @@ static inline unsigned dev_mask_nr(struct bch_devs_mask *devs) return bitmap_weight(devs->d, BCH_SB_MEMBERS_MAX); } +static inline bool bch2_dev_list_has_dev(struct bch_devs_list devs, + unsigned dev) +{ + unsigned i; + + for (i = 0; i < devs.nr; i++) + if (devs.devs[i] == dev) + return true; + + return false; +} + +static inline void bch2_dev_list_drop_dev(struct bch_devs_list *devs, + unsigned dev) +{ + unsigned i; + + for (i = 0; i < devs->nr; i++) + if (devs->devs[i] == dev) { + array_remove_item(devs->devs, devs->nr, i); + return; + } +} + static inline struct bch_dev *__bch2_next_dev(struct bch_fs *c, unsigned *iter, struct bch_devs_mask *mask) { |