ceph: switch to page_mkwrite_check_truncate in ceph_page_mkwrite
authorAndreas Gruenbacher <agruenba@redhat.com>
Thu, 13 Feb 2020 20:24:22 +0000 (21:24 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 30 Mar 2020 10:42:41 +0000 (12:42 +0200)
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>
fs/ceph/addr.c

index 7136f99..6f4678d 100644 (file)
@@ -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;