[PATCH] [12/16] POISON: Handle poisoned pages in set_page_dirty()

From: Andi Kleen
Date: Tue Apr 07 2009 - 11:23:48 EST



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@xxxxxxxxxxxxxxx>

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

Index: linux/mm/page-writeback.c
===================================================================
--- linux.orig/mm/page-writeback.c 2009-04-07 16:39:22.000000000 +0200
+++ linux/mm/page-writeback.c 2009-04-07 16:39:39.000000000 +0200
@@ -1277,6 +1277,10 @@
{
struct address_space *mapping = page_mapping(page);

+ if (unlikely(PagePoison(page))) {
+ SetPageDirty(page);
+ return 0;
+ }
if (likely(mapping)) {
int (*spd)(struct page *) = mapping->a_ops->set_page_dirty;
#ifdef CONFIG_BLOCK
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/