From: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> Allowing kswapd to do GFP_KERNEL memory allocations (or any blocking memory allocations) is wrong and can cause deadlocks in try_to_release_page(), as the filesystem believes it is safe to allocate new memory and block, whereas kswapd is there specifically to clear a low-memory situation... Set the gfp_mask to GFP_IOFS instead. Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> --- mm/vmscan.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index ec5ddcc..716dd16 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2095,7 +2095,7 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order) unsigned long total_scanned; struct reclaim_state *reclaim_state = current->reclaim_state; struct scan_control sc = { - .gfp_mask = GFP_KERNEL, + .gfp_mask = GFP_IOFS, .may_unmap = 1, .may_swap = 1, /* -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html