From e6033b193e8d35e689b7c2860374c8b2d2b7a5ee Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Wed, 28 Apr 2021 22:26:10 +0800 Subject: [PATCH] LU-14541 llite: avoid stale data reading remove_mapping() can prohibit to kill page from page cache due page refcount!=2, in vvp_page_delete() clear uptodate flag in case stale data reading later. Signed-off-by: Wang Shilong Change-Id: I322debec951b1a342246475456c0f40e10b0e578 --- lustre/llite/vvp_page.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lustre/llite/vvp_page.c b/lustre/llite/vvp_page.c index d0e274c..d5158e7 100644 --- a/lustre/llite/vvp_page.c +++ b/lustre/llite/vvp_page.c @@ -178,6 +178,12 @@ static void vvp_page_delete(const struct lu_env *env, ClearPagePrivate(vmpage); vmpage->private = 0; + + /** + * Vmpage might not be released due page refcount != 2, + * clear Page uptodate here to avoid stale data. + */ + ClearPageUptodate(vmpage); /* * Reference from vmpage to cl_page is removed, but the reference back * is still here. It is removed later in vvp_page_fini(). -- 1.8.3.1