[PATCH] [11/16] HWPOISON: Handle poisoned pages in set_page_dirty()

Andi Kleen
2009-05-27T20:16:39Z

Bail out early in set_page_dirty for poisoned pages. We don't want any
of the dirty accounting done or file system write back started, because
the page will be just thrown away.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

---
mm/page-writeback.c | 4 ++++
1 file changed, 4 insertions(+)

Index: linux/mm/page-writeback.c
===================================================================
--- linux.orig/mm/page-writeback.c 2009-05-26 22:15:37.000000000 +0200
+++ linux/mm/page-writeback.c 2009-05-27 21:14:21.000000000 +0200
@@ -1277,6 +1277,10 @@
{
struct address_space *mapping = page_mapping(page);

+ if (unlikely(PageHWPoison(page))) {
+ SetPageDirty(page);
+ return 0;
+ }
if (likely(mapping)) {
int (*spd)(struct page *) = mapping->a_ops->set_page_dirty;
#ifdef CONFIG_BLOCK