|
@@ -153,7 +153,7 @@ static struct nfs_page *nfs_page_find_request_locked(struct page *page)
|
|
|
|
|
|
static struct nfs_page *nfs_page_find_request(struct page *page)
|
|
|
{
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
struct nfs_page *req = NULL;
|
|
|
|
|
|
spin_lock(&inode->i_lock);
|
|
@@ -165,16 +165,16 @@ static struct nfs_page *nfs_page_find_request(struct page *page)
|
|
|
/* Adjust the file length if we're writing beyond the end */
|
|
|
static void nfs_grow_file(struct page *page, unsigned int offset, unsigned int count)
|
|
|
{
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
loff_t end, i_size;
|
|
|
pgoff_t end_index;
|
|
|
|
|
|
spin_lock(&inode->i_lock);
|
|
|
i_size = i_size_read(inode);
|
|
|
end_index = (i_size - 1) >> PAGE_CACHE_SHIFT;
|
|
|
- if (i_size > 0 && page->index < end_index)
|
|
|
+ if (i_size > 0 && page_file_index(page) < end_index)
|
|
|
goto out;
|
|
|
- end = ((loff_t)page->index << PAGE_CACHE_SHIFT) + ((loff_t)offset+count);
|
|
|
+ end = page_file_offset(page) + ((loff_t)offset+count);
|
|
|
if (i_size >= end)
|
|
|
goto out;
|
|
|
i_size_write(inode, end);
|
|
@@ -187,7 +187,7 @@ out:
|
|
|
static void nfs_set_pageerror(struct page *page)
|
|
|
{
|
|
|
SetPageError(page);
|
|
|
- nfs_zap_mapping(page->mapping->host, page->mapping);
|
|
|
+ nfs_zap_mapping(page_file_mapping(page)->host, page_file_mapping(page));
|
|
|
}
|
|
|
|
|
|
/* We can set the PG_uptodate flag if we see that a write request
|
|
@@ -228,7 +228,7 @@ static int nfs_set_page_writeback(struct page *page)
|
|
|
int ret = test_set_page_writeback(page);
|
|
|
|
|
|
if (!ret) {
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
struct nfs_server *nfss = NFS_SERVER(inode);
|
|
|
|
|
|
if (atomic_long_inc_return(&nfss->writeback) >
|
|
@@ -242,7 +242,7 @@ static int nfs_set_page_writeback(struct page *page)
|
|
|
|
|
|
static void nfs_end_page_writeback(struct page *page)
|
|
|
{
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
struct nfs_server *nfss = NFS_SERVER(inode);
|
|
|
|
|
|
end_page_writeback(page);
|
|
@@ -252,7 +252,7 @@ static void nfs_end_page_writeback(struct page *page)
|
|
|
|
|
|
static struct nfs_page *nfs_find_and_lock_request(struct page *page, bool nonblock)
|
|
|
{
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
struct nfs_page *req;
|
|
|
int ret;
|
|
|
|
|
@@ -313,13 +313,13 @@ out:
|
|
|
|
|
|
static int nfs_do_writepage(struct page *page, struct writeback_control *wbc, struct nfs_pageio_descriptor *pgio)
|
|
|
{
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
int ret;
|
|
|
|
|
|
nfs_inc_stats(inode, NFSIOS_VFSWRITEPAGE);
|
|
|
nfs_add_stats(inode, NFSIOS_WRITEPAGES, 1);
|
|
|
|
|
|
- nfs_pageio_cond_complete(pgio, page->index);
|
|
|
+ nfs_pageio_cond_complete(pgio, page_file_index(page));
|
|
|
ret = nfs_page_async_flush(pgio, page, wbc->sync_mode == WB_SYNC_NONE);
|
|
|
if (ret == -EAGAIN) {
|
|
|
redirty_page_for_writepage(wbc, page);
|
|
@@ -336,7 +336,7 @@ static int nfs_writepage_locked(struct page *page, struct writeback_control *wbc
|
|
|
struct nfs_pageio_descriptor pgio;
|
|
|
int err;
|
|
|
|
|
|
- NFS_PROTO(page->mapping->host)->write_pageio_init(&pgio,
|
|
|
+ NFS_PROTO(page_file_mapping(page)->host)->write_pageio_init(&pgio,
|
|
|
page->mapping->host,
|
|
|
wb_priority(wbc),
|
|
|
&nfs_async_write_completion_ops);
|
|
@@ -471,7 +471,7 @@ nfs_request_add_commit_list(struct nfs_page *req, struct list_head *dst,
|
|
|
spin_unlock(cinfo->lock);
|
|
|
if (!cinfo->dreq) {
|
|
|
inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
|
|
|
- inc_bdi_stat(req->wb_page->mapping->backing_dev_info,
|
|
|
+ inc_bdi_stat(page_file_mapping(req->wb_page)->backing_dev_info,
|
|
|
BDI_RECLAIMABLE);
|
|
|
__mark_inode_dirty(req->wb_context->dentry->d_inode,
|
|
|
I_DIRTY_DATASYNC);
|
|
@@ -538,7 +538,7 @@ static void
|
|
|
nfs_clear_page_commit(struct page *page)
|
|
|
{
|
|
|
dec_zone_page_state(page, NR_UNSTABLE_NFS);
|
|
|
- dec_bdi_stat(page->mapping->backing_dev_info, BDI_RECLAIMABLE);
|
|
|
+ dec_bdi_stat(page_file_mapping(page)->backing_dev_info, BDI_RECLAIMABLE);
|
|
|
}
|
|
|
|
|
|
static void
|
|
@@ -789,7 +789,7 @@ out_err:
|
|
|
static struct nfs_page * nfs_setup_write_request(struct nfs_open_context* ctx,
|
|
|
struct page *page, unsigned int offset, unsigned int bytes)
|
|
|
{
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
struct nfs_page *req;
|
|
|
|
|
|
req = nfs_try_to_update_request(inode, page, offset, bytes);
|
|
@@ -842,7 +842,7 @@ int nfs_flush_incompatible(struct file *file, struct page *page)
|
|
|
nfs_release_request(req);
|
|
|
if (!do_flush)
|
|
|
return 0;
|
|
|
- status = nfs_wb_page(page->mapping->host, page);
|
|
|
+ status = nfs_wb_page(page_file_mapping(page)->host, page);
|
|
|
} while (status == 0);
|
|
|
return status;
|
|
|
}
|
|
@@ -872,7 +872,7 @@ int nfs_updatepage(struct file *file, struct page *page,
|
|
|
unsigned int offset, unsigned int count)
|
|
|
{
|
|
|
struct nfs_open_context *ctx = nfs_file_open_context(file);
|
|
|
- struct inode *inode = page->mapping->host;
|
|
|
+ struct inode *inode = page_file_mapping(page)->host;
|
|
|
int status = 0;
|
|
|
|
|
|
nfs_inc_stats(inode, NFSIOS_VFSUPDATEPAGE);
|
|
@@ -880,7 +880,7 @@ int nfs_updatepage(struct file *file, struct page *page,
|
|
|
dprintk("NFS: nfs_updatepage(%s/%s %d@%lld)\n",
|
|
|
file->f_path.dentry->d_parent->d_name.name,
|
|
|
file->f_path.dentry->d_name.name, count,
|
|
|
- (long long)(page_offset(page) + offset));
|
|
|
+ (long long)(page_file_offset(page) + offset));
|
|
|
|
|
|
/* If we're not using byte range locks, and we know the page
|
|
|
* is up to date, it may be more efficient to extend the write
|
|
@@ -1469,7 +1469,7 @@ void nfs_retry_commit(struct list_head *page_list,
|
|
|
nfs_mark_request_commit(req, lseg, cinfo);
|
|
|
if (!cinfo->dreq) {
|
|
|
dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
|
|
|
- dec_bdi_stat(req->wb_page->mapping->backing_dev_info,
|
|
|
+ dec_bdi_stat(page_file_mapping(req->wb_page)->backing_dev_info,
|
|
|
BDI_RECLAIMABLE);
|
|
|
}
|
|
|
nfs_unlock_and_release_request(req);
|