浏览代码

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>
Wu Fengguang 15 年之前
父节点
当前提交
db0480b3a6
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      mm/memory-failure.c

+ 2 - 0
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
 	 * 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.
 	 * 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);
 	mapping = page_mapping(p);
 	if (!PageDirty(p) && mapping && mapping_cap_writeback_dirty(mapping)) {
 	if (!PageDirty(p) && mapping && mapping_cap_writeback_dirty(mapping)) {