X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Fmemory-failure.c;h=620b0b461593afb124fc3174508b55993fe1f782;hb=b66696e3c0d8fc01efdbc701eba1276618332cb3;hp=17299fd4577c6fc903b5fcb15e52f7fba4f2149d;hpb=b8be634e01b400fa2528848ad0cd6a5580a15bc4;p=~andy%2Flinux diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 17299fd4577..620b0b46159 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -44,6 +44,7 @@ #include #include #include +#include #include "internal.h" int sysctl_memory_failure_early_kill __read_mostly = 0; @@ -383,9 +384,12 @@ static void collect_procs_anon(struct page *page, struct list_head *to_kill, if (av == NULL) /* Not actually mapped anymore */ goto out; for_each_process (tsk) { + struct anon_vma_chain *vmac; + if (!task_early_kill(tsk)) continue; - list_for_each_entry (vma, &av->head, anon_vma_node) { + list_for_each_entry(vmac, &av->head, same_anon_vma) { + vma = vmac->vma; if (!page_mapped_in_vma(page, vma)) continue; if (vma->vm_mm == tsk->mm)