summaryrefslogtreecommitdiff
path: root/libbcachefs/super.h
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/super.h')
-rw-r--r--libbcachefs/super.h24
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)
{