diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 45745aae4786c08cbd6789dea03a9b8be1354af5..ae438d02a42263f299c2d359aa81cd851e97ac4c 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -900,7 +900,7 @@ static int ceph_writepages_start(struct address_space *mapping, } /* submit the write */ - offset = req->r_data_out.pages[0]->index << PAGE_CACHE_SHIFT; + offset = page_offset(req->r_data_out.pages[0]); len = min((snap_size ? snap_size : i_size_read(inode)) - offset, (u64)locked_pages << PAGE_CACHE_SHIFT); dout("writepages got %d pages at %llu~%llu\n",