diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-01-07 13:46:52 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:09:49 +0300 |
commit | 6c36318cc702f05d302fb98a99636e320392bdf1 (patch) | |
tree | 9f1d6f567f31162215aa9d2f6f66e48d06b94e64 /fs/bcachefs/btree_iter.c | |
parent | 7af365eb3694b7ef7ce2b90b6de4b830a49cdda4 (diff) | |
download | linux-6c36318cc702f05d302fb98a99636e320392bdf1.tar.xz |
bcachefs: key cache: Don't hold btree locks while using GFP_RECLAIM
This is something we need to do more widely: instead of bothering with
GFP_NOIO/GFP_NOFS, if we need to allocate memory while holding locks:
- first attempt the allocation with GFP_NOWAIT
- if that fails, drop btree locks with bch2_trans_unlock(), then
retry with GFP_KERNEL.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_iter.c')
-rw-r--r-- | fs/bcachefs/btree_iter.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 31733c239746..0a0d3aa05395 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -2827,7 +2827,7 @@ u32 bch2_trans_begin(struct btree_trans *trans) bch2_trans_relock(trans); } - if (unlikely(time_after(jiffies, trans->srcu_lock_time + HZ))) + if (unlikely(time_after(jiffies, trans->srcu_lock_time + msecs_to_jiffies(10)))) bch2_trans_reset_srcu_lock(trans); trans->last_restarted_ip = _RET_IP_; |