Commit 56f91aad authored by Li Wang's avatar Li Wang Committed by Sage Weil

ceph: Avoid data inconsistency due to d-cache aliasing in readpage()

If the length of data to be read in readpage() is exactly
PAGE_CACHE_SIZE, the original code does not flush d-cache
for data consistency after finishing reading. This patches fixes
Signed-off-by: default avatarLi Wang <>
Signed-off-by: default avatarSage Weil <>
parent 86b58d13
......@@ -210,9 +210,13 @@ static int readpage_nounlock(struct file *filp, struct page *page)
if (err < 0) {
goto out;
} else if (err < PAGE_CACHE_SIZE) {
} else {
if (err < PAGE_CACHE_SIZE) {
/* zero fill remainder of page */
zero_user_segment(page, err, PAGE_CACHE_SIZE);
zero_user_segment(page, err, PAGE_CACHE_SIZE);
} else {
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment