Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fae5096a authored by J. Bruce Fields's avatar J. Bruce Fields
Browse files

nfsd: assume writeable exportabled filesystems have f_sync



I don't really see how you could claim to support nfsd and not support
fsync somehow.

And in practice a quick look through the exportable filesystems suggests
the only ones without an ->fsync are read-only (efs, isofs, squashfs) or
in-memory (shmem).

Also, performing a write and then returning an error if the sync fails
(as we would do here in the wgather case) seems unhelpful to clients.

Also remove an incorrect comment.

Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 7fa10cd1
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -1020,21 +1020,8 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
	inode = dentry->d_inode;
	exp   = fhp->fh_export;

	/*
	 * Request sync writes if
	 *  -	the sync export option has been set, or
	 *  -	the client requested O_SYNC behavior (NFSv3 feature).
	 *  -   The file system doesn't support fsync().
	 * When NFSv2 gathered writes have been configured for this volume,
	 * flushing the data to disk is handled separately below.
	 */
	use_wgather = (rqstp->rq_vers == 2) && EX_WGATHER(exp);

	if (!file->f_op->fsync) {/* COMMIT3 cannot work */
	       stable = 2;
	       *stablep = 2; /* FILE_SYNC */
	}

	if (!EX_ISSYNC(exp))
		stable = 0;
	if (stable && !use_wgather) {