diff options
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r-- | fs/nfs/inode.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 7570573bdb30..7f9ecc46f3fb 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -97,16 +97,12 @@ u64 nfs_compat_user_ino64(u64 fileid) | |||
97 | return ino; | 97 | return ino; |
98 | } | 98 | } |
99 | 99 | ||
100 | int nfs_write_inode(struct inode *inode, int sync) | 100 | int nfs_write_inode(struct inode *inode, struct writeback_control *wbc) |
101 | { | 101 | { |
102 | int ret; | 102 | int ret; |
103 | 103 | ||
104 | if (sync) { | 104 | ret = nfs_commit_inode(inode, |
105 | ret = filemap_fdatawait(inode->i_mapping); | 105 | wbc->sync_mode == WB_SYNC_ALL ? FLUSH_SYNC : 0); |
106 | if (ret == 0) | ||
107 | ret = nfs_commit_inode(inode, FLUSH_SYNC); | ||
108 | } else | ||
109 | ret = nfs_commit_inode(inode, 0); | ||
110 | if (ret >= 0) | 106 | if (ret >= 0) |
111 | return 0; | 107 | return 0; |
112 | __mark_inode_dirty(inode, I_DIRTY_DATASYNC); | 108 | __mark_inode_dirty(inode, I_DIRTY_DATASYNC); |