diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-09 05:04:38 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-06-20 22:52:15 -0400 |
commit | ae6a0ada4802fe35c68c01dd0ca5cbea0bfb0d2e (patch) | |
tree | aa47591a721a3d86514cac66dfd3f94bdf97875a /fs/bcachefs/btree_update_interior.c | |
parent | 6b004d665f2af6e9430125637b18d8c23fbabbce (diff) |
bcachefs: bch2_btree_insert_node() no longer uses lock_write_nofail
Now that we have an error path plumbed through, there's no need to be
using bch2_btree_node_lock_write_nofail().
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_update_interior.c')
-rw-r--r-- | fs/bcachefs/btree_update_interior.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c index b0a15757aaea..7619890d9df1 100644 --- a/fs/bcachefs/btree_update_interior.c +++ b/fs/bcachefs/btree_update_interior.c @@ -1695,6 +1695,7 @@ static int bch2_btree_insert_node(struct btree_update *as, struct btree_trans *t int old_u64s = le16_to_cpu(btree_bset_last(b)->u64s); int old_live_u64s = b->nr.live_u64s; int live_u64s_added, u64s_added; + int ret; lockdep_assert_held(&c->gc_lock); BUG_ON(!btree_node_intent_locked(path, btree_node_root(c, b)->c.level)); @@ -1705,7 +1706,11 @@ static int bch2_btree_insert_node(struct btree_update *as, struct btree_trans *t if (!(local_clock() & 63)) return btree_trans_restart(trans, BCH_ERR_transaction_restart_split_race); - bch2_btree_node_lock_for_insert(trans, path, b); + ret = bch2_btree_node_lock_write(trans, path, &b->c); + if (ret) + return ret; + + bch2_btree_node_prep_for_write(trans, path, b); if (!bch2_btree_node_insert_fits(c, b, bch2_keylist_u64s(keys))) { bch2_btree_node_unlock_write(trans, path, b); |