diff options
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r-- | fs/nfs/inode.c | 7 |
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); |