diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2020-02-13 21:24:22 +0100 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2020-03-30 12:42:41 +0200 |
commit | cb03c14390fb0d345f098730b9ef67ca6058c439 (patch) | |
tree | 2a11e5f4ddcd8761f8ab889c2553abd8fe2a198b /fs/ceph | |
parent | f682dc713c0af79effde49209f3895072579791b (diff) | |
download | linux-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>
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/addr.c | 2 |
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; |