gfs2: use page_offset in gfs2_page_mkwrite
authorChristoph Hellwig <hch@lst.de>
Mon, 1 Jul 2019 21:54:31 +0000 (23:54 +0200)
committerAndreas Gruenbacher <agruenba@redhat.com>
Wed, 3 Jul 2019 06:53:01 +0000 (08:53 +0200)
Without casting page->index to a guaranteed 64-bit type, the value might be
treated as 32-bit on 32-bit platforms and thus get truncated.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/file.c

index 28bdbeb1103017a4eabc15d262b174ef5ea54937..5d61113b3f50ee2558354c8e78249b7075f50647 100644 (file)
@@ -408,7 +408,7 @@ static vm_fault_t gfs2_page_mkwrite(struct vm_fault *vmf)
        struct gfs2_sbd *sdp = GFS2_SB(inode);
        struct gfs2_alloc_parms ap = { .aflags = 0, };
        unsigned long last_index;
-       u64 pos = page->index << PAGE_SHIFT;
+       u64 pos = page_offset(page);
        unsigned int data_blocks, ind_blocks, rblocks;
        struct gfs2_holder gh;
        loff_t size;