From: Kent Overstreet Date: Thu, 24 Feb 2022 18:27:31 +0000 (-0500) Subject: bcachefs: Always clear should_be_locked in bch2_trans_begin() X-Git-Tag: v6.7-rc1~201^2~1111 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=25a7723182ee62a8e74b204acbd117e4d6c12341;p=thirdparty%2Fkernel%2Flinux.git bcachefs: Always clear should_be_locked in bch2_trans_begin() bch2_trans_begin() invalidates all iterators, until they're revalidated by calling peek() or traverse(). Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 1015e89d2d683..8aacaa05fc144 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -2988,6 +2988,8 @@ void bch2_trans_begin(struct btree_trans *trans) } trans_for_each_path(trans, path) { + path->should_be_locked = false; + /* * XXX: we probably shouldn't be doing this if the transaction * was restarted, but currently we still overflow transaction @@ -2996,7 +2998,7 @@ void bch2_trans_begin(struct btree_trans *trans) if (!path->ref && !path->preserve) __bch2_path_free(trans, path); else - path->preserve = path->should_be_locked = false; + path->preserve = false; } bch2_trans_cond_resched(trans);