bcachefs: Must check for errors from bch2_trans_cond_resched()
authorKent Overstreet <kent.overstreet@gmail.com>
Sun, 24 Oct 2021 20:40:05 +0000 (16:40 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:14 +0000 (17:09 -0400)
But we don't need to call it from outside the btree iterator code
anymore, since it's called by bch2_trans_begin() and
bch2_btree_path_traverse().

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/alloc_background.c
fs/bcachefs/btree_gc.c
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_iter.h
fs/bcachefs/btree_update_leaf.c
fs/bcachefs/fsck.c
fs/bcachefs/move.c

index fc1b4b354b050ffa1f1fb958d104aa969e659c25..2551ccc99d38b316221cf4139b6d207fe0da156c 100644 (file)
@@ -367,8 +367,6 @@ int bch2_alloc_write(struct bch_fs *c, unsigned flags)
                        POS(ca->dev_idx, ca->mi.first_bucket));
 
                while (iter.pos.offset < ca->mi.nbuckets) {
-                       bch2_trans_cond_resched(&trans);
-
                        ret = bch2_alloc_write_key(&trans, &iter, flags);
                        if (ret) {
                                percpu_ref_put(&ca->ref);
index 315a78b5ba8ba663292890dec907b42d8c90594f..75d881b7a6c9d6b2655987dfe3cdf6c0feea0868 100644 (file)
@@ -828,8 +828,6 @@ static int bch2_gc_btree(struct bch_fs *c, enum btree_id btree_id,
                                                BTREE_INSERT_NOWAIT|
                                                BTREE_INSERT_GC_LOCK_HELD);
                }
-
-               bch2_trans_cond_resched(&trans);
        }
        bch2_trans_iter_exit(&trans, &iter);
 
index 2b51245dd5fe8c1c103f3c7ef296ec5267923665..189c020d289a42456fad23705f315f7e61b747c4 100644 (file)
@@ -24,6 +24,21 @@ static inline void btree_path_list_add(struct btree_trans *, struct btree_path *
 
 static struct btree_path *btree_path_alloc(struct btree_trans *, struct btree_path *);
 
+/*
+ * Unlocks before scheduling
+ * Note: does not revalidate iterator
+ */
+static inline int bch2_trans_cond_resched(struct btree_trans *trans)
+{
+       if (need_resched() || race_fault()) {
+               bch2_trans_unlock(trans);
+               schedule();
+               return bch2_trans_relock(trans) ? 0 : -EINTR;
+       } else {
+               return 0;
+       }
+}
+
 static inline int __btree_path_cmp(const struct btree_path *l,
                                   enum btree_id        r_btree_id,
                                   bool                 r_cached,
index fea1101155be72493a832b69a3ba0e4b740ed0ea..e58cad4b8fc6ea1962ba279d3b06515dc1794ef0 100644 (file)
@@ -269,21 +269,6 @@ static inline void bch2_btree_iter_set_snapshot(struct btree_iter *iter, u32 sna
        bch2_btree_iter_set_pos(iter, pos);
 }
 
-/*
- * Unlocks before scheduling
- * Note: does not revalidate iterator
- */
-static inline int bch2_trans_cond_resched(struct btree_trans *trans)
-{
-       if (need_resched() || race_fault()) {
-               bch2_trans_unlock(trans);
-               schedule();
-               return bch2_trans_relock(trans) ? 0 : -EINTR;
-       } else {
-               return 0;
-       }
-}
-
 void bch2_trans_iter_exit(struct btree_trans *, struct btree_iter *);
 void bch2_trans_iter_init(struct btree_trans *, struct btree_iter *,
                          unsigned, struct bpos, unsigned);
index 22fce150781e8b6b92a720d6ad72cb07344583e2..8b4933add01783fef83bd75131a6913fb36f34e0 100644 (file)
@@ -1414,8 +1414,6 @@ retry:
                                        BTREE_INSERT_NOFAIL);
                if (ret)
                        break;
-
-               bch2_trans_cond_resched(trans);
        }
 
        if (ret == -EINTR) {
index 58d42734c252d3311ffa5c7498b9f1158a5f0076..197b9079e2b8c90913462055a9cc40f41998a211 100644 (file)
@@ -2116,8 +2116,6 @@ static int check_nlinks_walk_dirents(struct bch_fs *c, struct nlink_table *links
                                         d.k->p.snapshot);
                        break;
                }
-
-               bch2_trans_cond_resched(&trans);
        }
        bch2_trans_iter_exit(&trans, &iter);
 
index 4e2bd1474a0a41ea6c902932bfdbd24e30631b2d..db980014172827e80e6e52b82f19d87a8dda1b58 100644 (file)
@@ -768,7 +768,6 @@ next:
                             &stats->sectors_seen);
 next_nondata:
                bch2_btree_iter_advance(&iter);
-               bch2_trans_cond_resched(&trans);
        }
 out:
 
@@ -914,7 +913,6 @@ retry:
                        ret = bch2_btree_node_rewrite(&trans, &iter,
                                        b->data->keys.seq, 0) ?: ret;
 next:
-                       bch2_trans_cond_resched(&trans);
                        bch2_btree_iter_next_node(&iter);
                }
                if (ret == -EINTR)