The patch titled mm: call into direct reclaim with PF_MEMALLOC set has been added to the -mm tree. Its filename is mm-call-into-direct-reclaim-without-pf_memalloc-set.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: mm: call into direct reclaim with PF_MEMALLOC set From: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> PF_MEMALLOC is also used to prevent recursion of direct reclaim. However this invocation does not set PF_MEMALLOC nor checks it and hence a can make it nest a single time. Either by reaching this spot from reclaim and then calling it again or entering here and encountering a __GFP_WAIT alloc from within. So check for PF_MEMALLOC and avoid a second invocation and otherwise set PF_MEMALLOC. Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/buffer.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN fs/buffer.c~mm-call-into-direct-reclaim-without-pf_memalloc-set fs/buffer.c --- a/fs/buffer.c~mm-call-into-direct-reclaim-without-pf_memalloc-set +++ a/fs/buffer.c @@ -360,8 +360,11 @@ static void free_more_memory(void) for_each_online_pgdat(pgdat) { zones = pgdat->node_zonelists[gfp_zone(GFP_NOFS)].zones; - if (*zones) + if (*zones && !(current->flags & PF_MEMALLOC)) { + current->flags |= PF_MEMALLOC; try_to_free_pages(zones, GFP_NOFS); + current->flags &= ~PF_MEMALLOC; + } } } _ Patches currently in -mm which might be from a.p.zijlstra@xxxxxxxxx are origin.patch git-net.patch grab-swap-token-reordered.patch new-scheme-to-preempt-swap-token.patch new-scheme-to-preempt-swap-token-tidy.patch mm-arch-do_page_fault-vs-in_atomic.patch mm-pagefault_disableenable.patch mm-pagefault_disableenable-s390-fix.patch mm-kummap_atomic-vs-in_atomic.patch mm-call-into-direct-reclaim-without-pf_memalloc-set.patch lockdep-annotate-nfs-nfsd-in-kernel-sockets.patch lockdep-annotate-nfs-nfsd-in-kernel-sockets-tidy.patch lockdep-fix-ide-proc-interaction.patch lockdep-spin_lock_irqsave_nested.patch lockdep-spin_lock_irqsave_nested-fix.patch lockdep-spin_lock_irqsave_nested-fix-2.patch lockdep-annotate-bcsp-driver.patch lockdep-print-current-locks-on-in_atomic-warnings.patch lockdep-name-some-old-style-locks.patch debug-workqueue-locking-sanity.patch debug-workqueue-locking-sanity-fix.patch tty-signal-tty-locking.patch tty-signal-tty-locking-3270-fix.patch do_task_stat-dont-take-tty_mutex.patch do_acct_process-dont-take-tty_mutex.patch sys_unshare-remove-a-broken-clone_sighand-code.patch remove-the-old-bd_mutex-lockdep-annotation.patch new-bd_mutex-lockdep-annotation.patch remove-lock_key-approach-to-managing-nested-bd_mutex-locks.patch simplify-some-aspects-of-bd_mutex-nesting.patch use-mutex_lock_nested-for-bd_mutex-to-avoid-lockdep-warning.patch avoid-lockdep-warning-in-md.patch bdev-fix-bd_part_count-leak.patch lockdep-annotate-nfsd4-recover-code.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html