aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2009-03-11 14:10:29 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2009-03-11 14:10:29 -0400
commitfb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4 (patch)
tree4b21038fae0e1a8a763d4118bd6543dc77e9b5aa /fs/nfs
parenta65318bf3afc93ce49227e849d213799b072c5fd (diff)
NFS: cleanup - remove struct nfs_inode->ncommit
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/inode.c1
-rw-r--r--fs/nfs/write.c25
2 files changed, 16 insertions, 10 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index b7656bd3706f..00f116cdadc6 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1345,7 +1345,6 @@ static void init_once(void *foo)
1345 INIT_LIST_HEAD(&nfsi->access_cache_entry_lru); 1345 INIT_LIST_HEAD(&nfsi->access_cache_entry_lru);
1346 INIT_LIST_HEAD(&nfsi->access_cache_inode_lru); 1346 INIT_LIST_HEAD(&nfsi->access_cache_inode_lru);
1347 INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC); 1347 INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC);
1348 nfsi->ncommit = 0;
1349 nfsi->npages = 0; 1348 nfsi->npages = 0;
1350 atomic_set(&nfsi->silly_count, 1); 1349 atomic_set(&nfsi->silly_count, 1);
1351 INIT_HLIST_HEAD(&nfsi->silly_list); 1350 INIT_HLIST_HEAD(&nfsi->silly_list);
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 9f9845859fc1..1a999939fedf 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -404,7 +404,6 @@ nfs_mark_request_commit(struct nfs_page *req)
404 struct nfs_inode *nfsi = NFS_I(inode); 404 struct nfs_inode *nfsi = NFS_I(inode);
405 405
406 spin_lock(&inode->i_lock); 406 spin_lock(&inode->i_lock);
407 nfsi->ncommit++;
408 set_bit(PG_CLEAN, &(req)->wb_flags); 407 set_bit(PG_CLEAN, &(req)->wb_flags);
409 radix_tree_tag_set(&nfsi->nfs_page_tree, 408 radix_tree_tag_set(&nfsi->nfs_page_tree,
410 req->wb_index, 409 req->wb_index,
@@ -523,6 +522,12 @@ static void nfs_cancel_commit_list(struct list_head *head)
523 } 522 }
524} 523}
525 524
525static int
526nfs_need_commit(struct nfs_inode *nfsi)
527{
528 return radix_tree_tagged(&nfsi->nfs_page_tree, NFS_PAGE_TAG_COMMIT);
529}
530
526#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) 531#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
527/* 532/*
528 * nfs_scan_commit - Scan an inode for commit requests 533 * nfs_scan_commit - Scan an inode for commit requests
@@ -538,16 +543,18 @@ static int
538nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages) 543nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages)
539{ 544{
540 struct nfs_inode *nfsi = NFS_I(inode); 545 struct nfs_inode *nfsi = NFS_I(inode);
541 int res = 0;
542 546
543 if (nfsi->ncommit != 0) { 547 if (!nfs_need_commit(nfsi))
544 res = nfs_scan_list(nfsi, dst, idx_start, npages, 548 return 0;
545 NFS_PAGE_TAG_COMMIT); 549
546 nfsi->ncommit -= res; 550 return nfs_scan_list(nfsi, dst, idx_start, npages, NFS_PAGE_TAG_COMMIT);
547 }
548 return res;
549} 551}
550#else 552#else
553static inline int nfs_need_commit(struct nfs_inode *nfsi)
554{
555 return 0;
556}
557
551static inline int nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages) 558static inline int nfs_scan_commit(struct inode *inode, struct list_head *dst, pgoff_t idx_start, unsigned int npages)
552{ 559{
553 return 0; 560 return 0;
@@ -820,7 +827,7 @@ static int nfs_write_rpcsetup(struct nfs_page *req,
820 data->args.stable = NFS_UNSTABLE; 827 data->args.stable = NFS_UNSTABLE;
821 if (how & FLUSH_STABLE) { 828 if (how & FLUSH_STABLE) {
822 data->args.stable = NFS_DATA_SYNC; 829 data->args.stable = NFS_DATA_SYNC;
823 if (!NFS_I(inode)->ncommit) 830 if (!nfs_need_commit(NFS_I(inode)))
824 data->args.stable = NFS_FILE_SYNC; 831 data->args.stable = NFS_FILE_SYNC;
825 } 832 }
826 833