From 6ffb637d4a303f7c03ba18ca0f78292cd4a18495 Mon Sep 17 00:00:00 2001 From: Rick Macklem Date: Fri, 22 May 2009 15:01:47 +0000 Subject: [PATCH] Change the code in the experimental nfs client to avoid flushing writes upon close when a write delegation is held by the client. This should be safe to do, now that nfsv4 Close operations are delayed until ncl_inactive() is called for the vnode. Approved by: kib (mentor) --- sys/fs/nfsclient/nfs_clvnops.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index 4b320ac881e3..047e3eb65a86 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -687,12 +687,8 @@ nfs_close(struct vop_close_args *ap) int cm = newnfs_commit_on_close ? 1 : 0; error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, cm); /* np->n_flag &= ~NMODIFIED; */ - } else if (NFS_ISV4(vp)) { - int cm; - if (newnfs_commit_on_close != 0) - cm = 1; - else - cm = nfscl_mustflush(vp); + } else if (NFS_ISV4(vp) && nfscl_mustflush(vp)) { + int cm = newnfs_commit_on_close ? 1 : 0; error = ncl_flush(vp, MNT_WAIT, cred, ap->a_td, cm); /* as above w.r.t. races when clearing NMODIFIED */ /* np->n_flag &= ~NMODIFIED; */