aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/nfs4file.c')
-rw-r--r--fs/nfs/nfs4file.c33
1 files changed, 1 insertions, 32 deletions
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c
index 57ca1c8039c1..22c35abbee9d 100644
--- a/fs/nfs/nfs4file.c
+++ b/fs/nfs/nfs4file.c
@@ -128,37 +128,6 @@ nfs4_file_flush(struct file *file, fl_owner_t id)
128 return vfs_fsync(file, 0); 128 return vfs_fsync(file, 0);
129} 129}
130 130
131static int
132nfs4_file_fsync(struct file *file, loff_t start, loff_t end, int datasync)
133{
134 int ret;
135 struct inode *inode = file_inode(file);
136
137 trace_nfs_fsync_enter(inode);
138
139 nfs_inode_dio_wait(inode);
140 do {
141 ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
142 if (ret != 0)
143 break;
144 inode_lock(inode);
145 ret = nfs_file_fsync_commit(file, start, end, datasync);
146 if (!ret)
147 ret = pnfs_sync_inode(inode, !!datasync);
148 inode_unlock(inode);
149 /*
150 * If nfs_file_fsync_commit detected a server reboot, then
151 * resend all dirty pages that might have been covered by
152 * the NFS_CONTEXT_RESEND_WRITES flag
153 */
154 start = 0;
155 end = LLONG_MAX;
156 } while (ret == -EAGAIN);
157
158 trace_nfs_fsync_exit(inode, ret);
159 return ret;
160}
161
162#ifdef CONFIG_NFS_V4_2 131#ifdef CONFIG_NFS_V4_2
163static loff_t nfs4_file_llseek(struct file *filep, loff_t offset, int whence) 132static loff_t nfs4_file_llseek(struct file *filep, loff_t offset, int whence)
164{ 133{
@@ -266,7 +235,7 @@ const struct file_operations nfs4_file_operations = {
266 .open = nfs4_file_open, 235 .open = nfs4_file_open,
267 .flush = nfs4_file_flush, 236 .flush = nfs4_file_flush,
268 .release = nfs_file_release, 237 .release = nfs_file_release,
269 .fsync = nfs4_file_fsync, 238 .fsync = nfs_file_fsync,
270 .lock = nfs_lock, 239 .lock = nfs_lock,
271 .flock = nfs_flock, 240 .flock = nfs_flock,
272 .splice_read = nfs_file_splice_read, 241 .splice_read = nfs_file_splice_read,