NFS: cleanup - remove struct nfs_inode->ncommit
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
a65318bf3a
commit
fb8a1f11b6
3 changed files with 17 additions and 12 deletions
|
@ -1345,7 +1345,6 @@ static void init_once(void *foo)
|
||||||
INIT_LIST_HEAD(&nfsi->access_cache_entry_lru);
|
INIT_LIST_HEAD(&nfsi->access_cache_entry_lru);
|
||||||
INIT_LIST_HEAD(&nfsi->access_cache_inode_lru);
|
INIT_LIST_HEAD(&nfsi->access_cache_inode_lru);
|
||||||
INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC);
|
INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC);
|
||||||
nfsi->ncommit = 0;
|
|
||||||
nfsi->npages = 0;
|
nfsi->npages = 0;
|
||||||
atomic_set(&nfsi->silly_count, 1);
|
atomic_set(&nfsi->silly_count, 1);
|
||||||
INIT_HLIST_HEAD(&nfsi->silly_list);
|
INIT_HLIST_HEAD(&nfsi->silly_list);
|
||||||
|
|
|
@ -404,7 +404,6 @@ nfs_mark_request_commit(struct nfs_page *req)
|
||||||
struct nfs_inode *nfsi = NFS_I(inode);
|
struct nfs_inode *nfsi = NFS_I(inode);
|
||||||
|
|
||||||
spin_lock(&inode->i_lock);
|
spin_lock(&inode->i_lock);
|
||||||
nfsi->ncommit++;
|
|
||||||
set_bit(PG_CLEAN, &(req)->wb_flags);
|
set_bit(PG_CLEAN, &(req)->wb_flags);
|
||||||
radix_tree_tag_set(&nfsi->nfs_page_tree,
|
radix_tree_tag_set(&nfsi->nfs_page_tree,
|
||||||
req->wb_index,
|
req->wb_index,
|
||||||
|
@ -523,6 +522,12 @@ static void nfs_cancel_commit_list(struct list_head *head)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
nfs_need_commit(struct nfs_inode *nfsi)
|
||||||
|
{
|
||||||
|
return radix_tree_tagged(&nfsi->nfs_page_tree, NFS_PAGE_TAG_COMMIT);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
|
#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
|
||||||
/*
|
/*
|
||||||
* nfs_scan_commit - Scan an inode for commit requests
|
* nfs_scan_commit - Scan an inode for commit requests
|
||||||
|
@ -538,16 +543,18 @@ static int
|
||||||
nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages)
|
nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages)
|
||||||
{
|
{
|
||||||
struct nfs_inode *nfsi = NFS_I(inode);
|
struct nfs_inode *nfsi = NFS_I(inode);
|
||||||
int res = 0;
|
|
||||||
|
|
||||||
if (nfsi->ncommit != 0) {
|
if (!nfs_need_commit(nfsi))
|
||||||
res = nfs_scan_list(nfsi, dst, idx_start, npages,
|
return 0;
|
||||||
NFS_PAGE_TAG_COMMIT);
|
|
||||||
nfsi->ncommit -= res;
|
return nfs_scan_list(nfsi, dst, idx_start, npages, NFS_PAGE_TAG_COMMIT);
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
static inline int nfs_need_commit(struct nfs_inode *nfsi)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages)
|
static inline int nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -820,7 +827,7 @@ static int nfs_write_rpcsetup(struct nfs_page *req,
|
||||||
data->args.stable = NFS_UNSTABLE;
|
data->args.stable = NFS_UNSTABLE;
|
||||||
if (how & FLUSH_STABLE) {
|
if (how & FLUSH_STABLE) {
|
||||||
data->args.stable = NFS_DATA_SYNC;
|
data->args.stable = NFS_DATA_SYNC;
|
||||||
if (!NFS_I(inode)->ncommit)
|
if (!nfs_need_commit(NFS_I(inode)))
|
||||||
data->args.stable = NFS_FILE_SYNC;
|
data->args.stable = NFS_FILE_SYNC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -166,8 +166,7 @@ struct nfs_inode {
|
||||||
*/
|
*/
|
||||||
struct radix_tree_root nfs_page_tree;
|
struct radix_tree_root nfs_page_tree;
|
||||||
|
|
||||||
unsigned long ncommit,
|
unsigned long npages;
|
||||||
npages;
|
|
||||||
|
|
||||||
/* Open contexts for shared mmap writes */
|
/* Open contexts for shared mmap writes */
|
||||||
struct list_head open_files;
|
struct list_head open_files;
|
||||||
|
|
Loading…
Reference in a new issue