X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=mm%2Fmemory-failure.c;h=620b0b461593afb124fc3174508b55993fe1f782;hb=9f6455325618821dcf6775d7972881fde32e77c5;hp=17299fd4577c6fc903b5fcb15e52f7fba4f2149d;hpb=27df5068e24f2f88de98e95eb6e8dbc9800bf80e;p=safe%2Fjmp%2Flinux-2.6 diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 17299fd..620b0b4 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)