nfsd: use vfs_fsync_range(), not O_SYNC, for stable writes
authorJ. Bruce Fields <bfields@redhat.com>
Fri, 26 Oct 2012 20:12:31 +0000 (16:12 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 8 Nov 2012 00:31:34 +0000 (19:31 -0500)
commitface15025ffdf664de95e86ae831544154d26c9c
tree7b848b1a55182da4368e182ab5bc9e3f52043263
parentfae5096ad217db2e3368e980c1d86223f786856b
nfsd: use vfs_fsync_range(), not O_SYNC, for stable writes

NFSv4 shares the same struct file across multiple writes.  (And we'd
like NFSv2 and NFSv3 to do that as well some day.)

So setting O_SYNC on the struct file as a way to request a synchronous
write doesn't work.

Instead, do a vfs_fsync_range() in that case.

Reported-by: Peter Staubach <pstaubach@exagrid.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/vfs.c