From cbdedc8bd11a78182e5c58d03a3770370e9b5fb6 Mon Sep 17 00:00:00 2001 From: zhengbin Date: Fri, 15 Mar 2019 00:09:22 +0800 Subject: [PATCH] mm/filemap: pass inclusive 'end_byte' parameter to filemap_range_has_page mainline inclusion from mainline-5.0 commit 35f12f0f5c3b category: bugfix bugzilla: 11621 CVE: NA ------------------------------------------------ The 'end_byte' parameter of filemap_range_has_page is required to be inclusive, so follow the rule. Link: http://lkml.kernel.org/r/1548678679-18122-1-git-send-email-zhengbin13@huawei.com Fixes: 6be96d3ad34a ("fs: return if direct I/O will trigger writeback") Signed-off-by: zhengbin Reviewed-by: Andrew Morton Reviewed-by: Matthew Wilcox Acked-by: Christoph Hellwig Cc: "Darrick J. Wong" Cc: Amir Goldstein Cc: Dave Chinner Cc: Johannes Weiner Cc: Hugh Dickins Cc: Hou Tao Cc: zhangyi (F) Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Stephen Rothwell Signed-off-by: zhong jiang Reviewed-by: Jing Xiangfeng Signed-off-by: Yang Yingliang --- mm/filemap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/filemap.c b/mm/filemap.c index c2225c12f287..25fcfc0514a3 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3034,7 +3034,7 @@ generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from) if (iocb->ki_flags & IOCB_NOWAIT) { /* If there are pages to writeback, return */ if (filemap_range_has_page(inode->i_mapping, pos, - pos + write_len)) + pos + write_len - 1)) return -EAGAIN; } else { written = filemap_write_and_wait_range(mapping, pos, -- GitLab