From: Yu Kuai yukuai3@huawei.com
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I6YDHU CVE: NA
--------------------------------
This reverts commit 8c2e5597a4e080179b49097bfa583ec7e1be2f5c.
Because this commit make a mistake to judge if the page is the same.
Signed-off-by: Yu Kuai yukuai3@huawei.com Reviewed-by: Kefeng Wang wangkefeng.wang@huawei.com Signed-off-by: Jialin Zhang zhangjialin11@huawei.com --- mm/filemap.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/mm/filemap.c b/mm/filemap.c index bf92156150ed..4619ad47ea9b 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2434,13 +2434,6 @@ static int generic_file_buffered_read_get_pages(struct kiocb *iocb, goto find_page; }
-static inline bool pos_same_page(loff_t pos1, loff_t pos2, struct page *page) -{ - unsigned int shift = page_shift(page); - - return (pos1 >> shift == pos2 >> shift); -} - /** * generic_file_buffered_read - generic file read routine * @iocb: the iocb to read @@ -2531,10 +2524,11 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb, writably_mapped = mapping_writably_mapped(mapping);
/* - * When a read accesses a page several times, only + * When a sequential read accesses a page several times, only * mark it as accessed the first time. */ - if (pos_same_page(iocb->ki_pos, ra->prev_pos -1, pages[0])) + if (iocb->ki_pos >> PAGE_SHIFT != + ra->prev_pos >> PAGE_SHIFT) mark_page_accessed(pages[0]); for (i = 1; i < pg_nr; i++) mark_page_accessed(pages[i]);