mm: memory-failure: don't account hwpoison_filter() filtered pages
authorMiaohe Lin <linmiaohe@huawei.com>
Tue, 11 Jul 2023 05:50:11 +0000 (13:50 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:19 +0000 (10:12 -0700)
mf_generic_kill_procs() will return -EOPNOTSUPP when hwpoison_filter()
filtered dax page.  In that case, action_result() isn't expected to be
called to update mf_stats.  This will results in inaccurate but benign
memory failure handling statistics.

Link: https://lkml.kernel.org/r/20230711055016.2286677-4-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memory-failure.c

index 71b4bb6..cac5413 100644 (file)
@@ -2098,7 +2098,8 @@ static int memory_failure_dev_pagemap(unsigned long pfn, int flags,
 out:
        /* drop pgmap ref acquired in caller */
        put_dev_pagemap(pgmap);
-       action_result(pfn, MF_MSG_DAX, rc ? MF_FAILED : MF_RECOVERED);
+       if (rc != -EOPNOTSUPP)
+               action_result(pfn, MF_MSG_DAX, rc ? MF_FAILED : MF_RECOVERED);
        return rc;
 }