diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2009-12-16 12:19:58 +0100 |
---|---|---|
committer | Andi Kleen <ak@linux.intel.com> | 2009-12-16 12:19:58 +0100 |
commit | db0480b3a61bd6ad86ead3b8bbad094ab0996932 (patch) | |
tree | 31b3d85181201234694a19d05590d7c5084f89ed | |
parent | 1668bfd5be9d8a52536c4865000fbbe065a3613b (diff) | |
download | op-kernel-dev-db0480b3a61bd6ad86ead3b8bbad094ab0996932.zip op-kernel-dev-db0480b3a61bd6ad86ead3b8bbad094ab0996932.tar.gz |
HWPOISON: comment the possible set_page_dirty() race
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
-rw-r--r-- | mm/memory-failure.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index b62287d..dc47415 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -687,6 +687,8 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn, /* * Propagate the dirty bit from PTEs to struct page first, because we * need this to decide if we should kill or just drop the page. + * XXX: the dirty test could be racy: set_page_dirty() may not always + * be called inside page lock (it's recommended but not enforced). */ mapping = page_mapping(p); if (!PageDirty(p) && mapping && mapping_cap_writeback_dirty(mapping)) { |