diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-09-28 10:16:57 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-03 23:55:55 -0400 |
commit | 43f669715745576e2445d05029232943e910b2ad (patch) | |
tree | 042b8c5cf30780c78c4a7c13bf77ba963f295e28 /net/unix/sysctl_net_unix.c | |
parent | 5e93c5497ea78c5de38d5863881ab9cca78eca93 (diff) |
bcachefs: Fix a trans path overflow in bch2_btree_delete_range_trans()
bch2_btree_delete_range_trans() was using btree_trans_too_many_iters()
to avoid path overflow, but this was buggy here (and also
btree_trans_too_many_iters() is suspect in general).
btree_trans_too_many_iters() only returns true when we're close to the
maximum number of paths - within 8 - but extent insert/delete assumes
that it can use more paths than that.
Instead, we need to call bch2_trans_begin() on every loop iteration.
Since we don't want to call bch2_trans_begin() (restarting the outer
transaction) if the call was a no-op - if we had no work to do - we have
to structure things a bit oddly.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'net/unix/sysctl_net_unix.c')
0 files changed, 0 insertions, 0 deletions