mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
bcachefs: Fix bch2_btree_path_traverse_all()
We need to take a ref on a path while we're traversing it: this fixes a bug with paths getting reused while being traversed, in the key cache fill code. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
ee94c413a7
commit
c82ed3047b
@ -999,7 +999,10 @@ retry_all:
|
||||
* the same position:
|
||||
*/
|
||||
if (path->uptodate) {
|
||||
__btree_path_get(path, false);
|
||||
ret = btree_path_traverse_one(trans, path, 0, _THIS_IP_);
|
||||
__btree_path_put(path, false);
|
||||
|
||||
if (bch2_err_matches(ret, BCH_ERR_transaction_restart) ||
|
||||
ret == -ENOMEM)
|
||||
goto retry_all;
|
||||
|
Loading…
Reference in New Issue
Block a user