]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit9596fc7049782d43ddadfc20f1e60af0278ab7ad
tree7b848b1a55182da4368e182ab5bc9e3f52043263
parentdc6bb4caeae635ee3c0672839ad9009430f093b4
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