|
@@ -574,7 +574,6 @@ static u64 get_writepages_data_length(struct inode *inode,
|
|
*/
|
|
*/
|
|
static int writepage_nounlock(struct page *page, struct writeback_control *wbc)
|
|
static int writepage_nounlock(struct page *page, struct writeback_control *wbc)
|
|
{
|
|
{
|
|
- struct timespec ts;
|
|
|
|
struct inode *inode;
|
|
struct inode *inode;
|
|
struct ceph_inode_info *ci;
|
|
struct ceph_inode_info *ci;
|
|
struct ceph_fs_client *fsc;
|
|
struct ceph_fs_client *fsc;
|
|
@@ -625,12 +624,11 @@ static int writepage_nounlock(struct page *page, struct writeback_control *wbc)
|
|
set_bdi_congested(inode_to_bdi(inode), BLK_RW_ASYNC);
|
|
set_bdi_congested(inode_to_bdi(inode), BLK_RW_ASYNC);
|
|
|
|
|
|
set_page_writeback(page);
|
|
set_page_writeback(page);
|
|
- ts = timespec64_to_timespec(inode->i_mtime);
|
|
|
|
err = ceph_osdc_writepages(&fsc->client->osdc, ceph_vino(inode),
|
|
err = ceph_osdc_writepages(&fsc->client->osdc, ceph_vino(inode),
|
|
&ci->i_layout, snapc, page_off, len,
|
|
&ci->i_layout, snapc, page_off, len,
|
|
ceph_wbc.truncate_seq,
|
|
ceph_wbc.truncate_seq,
|
|
ceph_wbc.truncate_size,
|
|
ceph_wbc.truncate_size,
|
|
- &ts, &page, 1);
|
|
|
|
|
|
+ &inode->i_mtime, &page, 1);
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
struct writeback_control tmp_wbc;
|
|
struct writeback_control tmp_wbc;
|
|
if (!wbc)
|
|
if (!wbc)
|
|
@@ -1134,7 +1132,7 @@ new_request:
|
|
pages = NULL;
|
|
pages = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
- req->r_mtime = timespec64_to_timespec(inode->i_mtime);
|
|
|
|
|
|
+ req->r_mtime = inode->i_mtime;
|
|
rc = ceph_osdc_start_request(&fsc->client->osdc, req, true);
|
|
rc = ceph_osdc_start_request(&fsc->client->osdc, req, true);
|
|
BUG_ON(rc);
|
|
BUG_ON(rc);
|
|
req = NULL;
|
|
req = NULL;
|
|
@@ -1734,7 +1732,7 @@ int ceph_uninline_data(struct file *filp, struct page *locked_page)
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
|
|
|
|
- req->r_mtime = timespec64_to_timespec(inode->i_mtime);
|
|
|
|
|
|
+ req->r_mtime = inode->i_mtime;
|
|
err = ceph_osdc_start_request(&fsc->client->osdc, req, false);
|
|
err = ceph_osdc_start_request(&fsc->client->osdc, req, false);
|
|
if (!err)
|
|
if (!err)
|
|
err = ceph_osdc_wait_request(&fsc->client->osdc, req);
|
|
err = ceph_osdc_wait_request(&fsc->client->osdc, req);
|
|
@@ -1776,7 +1774,7 @@ int ceph_uninline_data(struct file *filp, struct page *locked_page)
|
|
goto out_put;
|
|
goto out_put;
|
|
}
|
|
}
|
|
|
|
|
|
- req->r_mtime = timespec64_to_timespec(inode->i_mtime);
|
|
|
|
|
|
+ req->r_mtime = inode->i_mtime;
|
|
err = ceph_osdc_start_request(&fsc->client->osdc, req, false);
|
|
err = ceph_osdc_start_request(&fsc->client->osdc, req, false);
|
|
if (!err)
|
|
if (!err)
|
|
err = ceph_osdc_wait_request(&fsc->client->osdc, req);
|
|
err = ceph_osdc_wait_request(&fsc->client->osdc, req);
|
|
@@ -1937,7 +1935,7 @@ static int __ceph_pool_perm_get(struct ceph_inode_info *ci,
|
|
0, false, true);
|
|
0, false, true);
|
|
err = ceph_osdc_start_request(&fsc->client->osdc, rd_req, false);
|
|
err = ceph_osdc_start_request(&fsc->client->osdc, rd_req, false);
|
|
|
|
|
|
- wr_req->r_mtime = timespec64_to_timespec(ci->vfs_inode.i_mtime);
|
|
|
|
|
|
+ wr_req->r_mtime = ci->vfs_inode.i_mtime;
|
|
err2 = ceph_osdc_start_request(&fsc->client->osdc, wr_req, false);
|
|
err2 = ceph_osdc_start_request(&fsc->client->osdc, wr_req, false);
|
|
|
|
|
|
if (!err)
|
|
if (!err)
|