bcachefs: Use bch2_btree_path_upgrade() in key cache traverse
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 10 Apr 2024 04:35:24 +0000 (00:35 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:19 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_key_cache.c

index 547ba9329678e0ac78761e18a0550a545271ae91..6645264a481bdd060ec941439d86b827e12a966b 100644 (file)
@@ -516,22 +516,9 @@ fill:
        path->uptodate = BTREE_ITER_UPTODATE;
 
        if (!ck->valid && !(flags & BTREE_ITER_cached_nofill)) {
-               /*
-                * Using the underscore version because we haven't set
-                * path->uptodate yet:
-                */
-               if (!path->locks_want &&
-                   !__bch2_btree_path_upgrade(trans, path, 1, NULL)) {
-                       trace_and_count(trans->c, trans_restart_key_cache_upgrade, trans, _THIS_IP_);
-                       ret = btree_trans_restart(trans, BCH_ERR_transaction_restart_key_cache_upgrade);
-                       goto err;
-               }
-
-               ret = btree_key_cache_fill(trans, path, ck);
-               if (ret)
-                       goto err;
-
-               ret = bch2_btree_path_relock(trans, path, _THIS_IP_);
+               ret =   bch2_btree_path_upgrade(trans, path, 1) ?:
+                       btree_key_cache_fill(trans, path, ck) ?:
+                       bch2_btree_path_relock(trans, path, _THIS_IP_);
                if (ret)
                        goto err;