X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Fmemory-failure.c;h=2f2f34a4e77de18e47bc815e3fd90ace33967e55;hb=200df1cc88f95c7587c3eb3a3be6c826d6a6256a;hp=4f08a2d61487f3c45dc01638c31b6aff689ce6e7;hpb=03c7287dd22c18815964219c9a2e75054cd004df;p=~andy%2Flinux diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 4f08a2d6148..2f2f34a4e77 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -945,8 +945,10 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn, * to it. Similarly, page lock is shifted. */ if (hpage != p) { - put_page(hpage); - get_page(p); + if (!(flags & MF_COUNT_INCREASED)) { + put_page(hpage); + get_page(p); + } lock_page(p); unlock_page(hpage); *hpagep = p;