From cac2a114419c02583ababfe53d1078c9cc9085be Mon Sep 17 00:00:00 2001 From: Wu Fengguang Date: Wed, 16 Dec 2009 12:19:58 +0100 Subject: [PATCH] --- yaml --- r: 177625 b: refs/heads/master c: 138ce286eb6ee6d39ca4fb50516e93adaf6b605f h: refs/heads/master i: 177623: 2ec5357f2241e9378ceb17a983a97da7c2a12611 v: v3 --- [refs] | 2 +- trunk/mm/memory-failure.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index da292ffdad56..dc45cc67d9a0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d95ea51e3a7e9ee051d19f1dd283ca61d1aa5ec6 +refs/heads/master: 138ce286eb6ee6d39ca4fb50516e93adaf6b605f diff --git a/trunk/mm/memory-failure.c b/trunk/mm/memory-failure.c index fd1ac1537f06..edeaf2319e74 100644 --- a/trunk/mm/memory-failure.c +++ b/trunk/mm/memory-failure.c @@ -654,17 +654,21 @@ static int page_action(struct page_state *ps, struct page *p, action_result(pfn, ps->msg, result); count = page_count(p) - 1; - if (count != 0) + if (ps->action == me_swapcache_dirty && result == DELAYED) + count--; + if (count != 0) { printk(KERN_ERR "MCE %#lx: %s page still referenced by %d users\n", pfn, ps->msg, count); + result = FAILED; + } /* Could do more checks here if page looks ok */ /* * Could adjust zone counters here to correct for the missing page. */ - return result == RECOVERED ? 0 : -EBUSY; + return (result == RECOVERED || result == DELAYED) ? 0 : -EBUSY; } #define N_UNMAP_TRIES 5