aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r--fs/nfs/inode.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 2f6f78c4b42d..f7296983eba6 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -418,8 +418,10 @@ nfs_setattr(struct dentry *dentry, struct iattr *attr)
418 return 0; 418 return 0;
419 419
420 /* Write all dirty data */ 420 /* Write all dirty data */
421 if (S_ISREG(inode->i_mode)) 421 if (S_ISREG(inode->i_mode)) {
422 nfs_inode_dio_wait(inode);
422 nfs_wb_all(inode); 423 nfs_wb_all(inode);
424 }
423 425
424 fattr = nfs_alloc_fattr(); 426 fattr = nfs_alloc_fattr();
425 if (fattr == NULL) 427 if (fattr == NULL)
@@ -503,6 +505,7 @@ int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
503 505
504 /* Flush out writes to the server in order to update c/mtime. */ 506 /* Flush out writes to the server in order to update c/mtime. */
505 if (S_ISREG(inode->i_mode)) { 507 if (S_ISREG(inode->i_mode)) {
508 nfs_inode_dio_wait(inode);
506 err = filemap_write_and_wait(inode->i_mapping); 509 err = filemap_write_and_wait(inode->i_mapping);
507 if (err) 510 if (err)
508 goto out; 511 goto out;
@@ -1527,7 +1530,6 @@ static inline void nfs4_init_once(struct nfs_inode *nfsi)
1527 nfsi->delegation_state = 0; 1530 nfsi->delegation_state = 0;
1528 init_rwsem(&nfsi->rwsem); 1531 init_rwsem(&nfsi->rwsem);
1529 nfsi->layout = NULL; 1532 nfsi->layout = NULL;
1530 atomic_set(&nfsi->commit_info.rpcs_out, 0);
1531#endif 1533#endif
1532} 1534}
1533 1535
@@ -1542,6 +1544,7 @@ static void init_once(void *foo)
1542 INIT_LIST_HEAD(&nfsi->commit_info.list); 1544 INIT_LIST_HEAD(&nfsi->commit_info.list);
1543 nfsi->npages = 0; 1545 nfsi->npages = 0;
1544 nfsi->commit_info.ncommit = 0; 1546 nfsi->commit_info.ncommit = 0;
1547 atomic_set(&nfsi->commit_info.rpcs_out, 0);
1545 atomic_set(&nfsi->silly_count, 1); 1548 atomic_set(&nfsi->silly_count, 1);
1546 INIT_HLIST_HEAD(&nfsi->silly_list); 1549 INIT_HLIST_HEAD(&nfsi->silly_list);
1547 init_waitqueue_head(&nfsi->waitqueue); 1550 init_waitqueue_head(&nfsi->waitqueue);