HWPOISON: fix invalid page count in printk output
authorWu Fengguang <fengguang.wu@intel.com>
Mon, 19 Oct 2009 06:15:01 +0000 (08:15 +0200)
committerAndi Kleen <ak@linux.intel.com>
Mon, 19 Oct 2009 06:15:01 +0000 (08:15 +0200)
The madvise injector already holds a reference when passing in a page
to the memory-failure code. The code corrects for this additional reference
for its checks, but the final printk output didn't. Fix that.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
mm/memory-failure.c

index e354b9f2f389d46224f41c07cf5dd004807400f9..dacc64183874c739e6a501c780d28ee220c4ac2b 100644 (file)
@@ -613,13 +613,16 @@ static int page_action(struct page_state *ps, struct page *p,
                        unsigned long pfn, int ref)
 {
        int result;
+       int count;
 
        result = ps->action(p, pfn);
        action_result(pfn, ps->msg, result);
-       if (page_count(p) != 1 + ref)
+
+       count = page_count(p) - 1 - ref;
+       if (count != 0)
                printk(KERN_ERR
                       "MCE %#lx: %s page still referenced by %d users\n",
-                      pfn, ps->msg, page_count(p) - 1);
+                      pfn, ps->msg, count);
 
        /* Could do more checks here if page looks ok */
        /*