mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-01-23 00:07:07 +03:00
Don't run shrinkers without GFP_KERNEL
This would correspond to GFP_RECLAIM in the kernel - but we don't distinguish between different types of reclaim here. This solves a deadlock in the btree node memory allocation path - we allocate with the btree node cache lock held but without GFP_KERNEL set. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
72add8822c
commit
81aef33957
@ -25,7 +25,7 @@ typedef unsigned short umode_t;
|
||||
|
||||
typedef unsigned gfp_t;
|
||||
|
||||
#define GFP_KERNEL 0
|
||||
#define GFP_KERNEL 1
|
||||
#define GFP_ATOMIC 0
|
||||
#define GFP_NOFS 0
|
||||
#define GFP_NOIO 0
|
||||
|
@ -88,6 +88,9 @@ void run_shrinkers(gfp_t gfp_mask, bool allocation_failed)
|
||||
struct sysinfo info;
|
||||
s64 want_shrink;
|
||||
|
||||
if (!(gfp_mask & GFP_KERNEL))
|
||||
return;
|
||||
|
||||
/* Fast out if there are no shrinkers to run. */
|
||||
if (list_empty(&shrinker_list))
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user