summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2020-02-13 21:24:22 +0100
committerIlya Dryomov <idryomov@gmail.com>2020-03-30 12:42:41 +0200
commitcb03c14390fb0d345f098730b9ef67ca6058c439 (patch)
tree2a11e5f4ddcd8761f8ab889c2553abd8fe2a198b
parentf682dc713c0af79effde49209f3895072579791b (diff)
downloadlinux-cb03c14390fb0d345f098730b9ef67ca6058c439.tar.gz
linux-cb03c14390fb0d345f098730b9ef67ca6058c439.tar.bz2
linux-cb03c14390fb0d345f098730b9ef67ca6058c439.zip
ceph: switch to page_mkwrite_check_truncate in ceph_page_mkwrite
Use the "page has been truncated" logic in page_mkwrite_check_truncate instead of reimplementing it here. Other than with the existing code, fail with -EFAULT / VM_FAULT_NOPAGE when page_offset(page) == size here as well, as should be expected. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-rw-r--r--fs/ceph/addr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index 7136f9947354..6f4678d98df7 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -1655,7 +1655,7 @@ static vm_fault_t ceph_page_mkwrite(struct vm_fault *vmf)
do {
lock_page(page);
- if ((off > size) || (page->mapping != inode->i_mapping)) {
+ if (page_mkwrite_check_truncate(page, inode) < 0) {
unlock_page(page);
ret = VM_FAULT_NOPAGE;
break;