]> www.infradead.org Git - users/hch/misc.git/commitdiff
bcachefs: bch2_dev_remove_alloc() -> alloc_background.c
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 1 Sep 2024 21:56:27 +0000 (17:56 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 21 Sep 2024 15:39:48 +0000 (11:39 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/alloc_background.c
fs/bcachefs/alloc_background.h
fs/bcachefs/super.c

index a6b9fe7038f32e5f16ff74179486dce0467bce1b..d4f0b62e31384cb8077554f76d1066d39754e6dc 100644 (file)
@@ -2298,6 +2298,35 @@ int bch2_fs_freespace_init(struct bch_fs *c)
        return 0;
 }
 
+/* device removal */
+
+int bch2_dev_remove_alloc(struct bch_fs *c, struct bch_dev *ca)
+{
+       struct bpos start       = POS(ca->dev_idx, 0);
+       struct bpos end         = POS(ca->dev_idx, U64_MAX);
+       int ret;
+
+       /*
+        * We clear the LRU and need_discard btrees first so that we don't race
+        * with bch2_do_invalidates() and bch2_do_discards()
+        */
+       ret =   bch2_btree_delete_range(c, BTREE_ID_lru, start, end,
+                                       BTREE_TRIGGER_norun, NULL) ?:
+               bch2_btree_delete_range(c, BTREE_ID_need_discard, start, end,
+                                       BTREE_TRIGGER_norun, NULL) ?:
+               bch2_btree_delete_range(c, BTREE_ID_freespace, start, end,
+                                       BTREE_TRIGGER_norun, NULL) ?:
+               bch2_btree_delete_range(c, BTREE_ID_backpointers, start, end,
+                                       BTREE_TRIGGER_norun, NULL) ?:
+               bch2_btree_delete_range(c, BTREE_ID_alloc, start, end,
+                                       BTREE_TRIGGER_norun, NULL) ?:
+               bch2_btree_delete_range(c, BTREE_ID_bucket_gens, start, end,
+                                       BTREE_TRIGGER_norun, NULL) ?:
+               bch2_dev_usage_remove(c, ca->dev_idx);
+       bch_err_msg(ca, ret, "removing dev alloc info");
+       return ret;
+}
+
 /* Bucket IO clocks: */
 
 int bch2_bucket_io_time_reset(struct btree_trans *trans, unsigned dev,
index fd790b03fbe1987af43d01e9ad210ec3d94a8e3e..577f823a0207f4078b5f8b1de34dbfcfd5d9cf32 100644 (file)
@@ -338,6 +338,7 @@ static inline const struct bch_backpointer *alloc_v4_backpointers_c(const struct
 
 int bch2_dev_freespace_init(struct bch_fs *, struct bch_dev *, u64, u64);
 int bch2_fs_freespace_init(struct bch_fs *);
+int bch2_dev_remove_alloc(struct bch_fs *, struct bch_dev *);
 
 void bch2_recalc_capacity(struct bch_fs *);
 u64 bch2_min_rw_member_capacity(struct bch_fs *);
index d8adf465f8b8126edf717af6dd5f083c8f81d406..7dba46e97fbd2b529bf3d31ee09831f0cd66597c 100644 (file)
@@ -1592,33 +1592,6 @@ int bch2_dev_set_state(struct bch_fs *c, struct bch_dev *ca,
 
 /* Device add/removal: */
 
-static int bch2_dev_remove_alloc(struct bch_fs *c, struct bch_dev *ca)
-{
-       struct bpos start       = POS(ca->dev_idx, 0);
-       struct bpos end         = POS(ca->dev_idx, U64_MAX);
-       int ret;
-
-       /*
-        * We clear the LRU and need_discard btrees first so that we don't race
-        * with bch2_do_invalidates() and bch2_do_discards()
-        */
-       ret =   bch2_btree_delete_range(c, BTREE_ID_lru, start, end,
-                                       BTREE_TRIGGER_norun, NULL) ?:
-               bch2_btree_delete_range(c, BTREE_ID_need_discard, start, end,
-                                       BTREE_TRIGGER_norun, NULL) ?:
-               bch2_btree_delete_range(c, BTREE_ID_freespace, start, end,
-                                       BTREE_TRIGGER_norun, NULL) ?:
-               bch2_btree_delete_range(c, BTREE_ID_backpointers, start, end,
-                                       BTREE_TRIGGER_norun, NULL) ?:
-               bch2_btree_delete_range(c, BTREE_ID_alloc, start, end,
-                                       BTREE_TRIGGER_norun, NULL) ?:
-               bch2_btree_delete_range(c, BTREE_ID_bucket_gens, start, end,
-                                       BTREE_TRIGGER_norun, NULL) ?:
-               bch2_dev_usage_remove(c, ca->dev_idx);
-       bch_err_msg(c, ret, "removing dev alloc info");
-       return ret;
-}
-
 int bch2_dev_remove(struct bch_fs *c, struct bch_dev *ca, int flags)
 {
        struct bch_member *m;