summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfsclient/nfs_clrpcops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nfsclient/nfs_clrpcops.c')
-rw-r--r--sys/fs/nfsclient/nfs_clrpcops.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index 9287d70..b42415a 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -550,7 +550,7 @@ nfsmout:
* V4 Close operation.
*/
APPLESTATIC int
-nfsrpc_close(vnode_t vp, struct ucred *cred, NFSPROC_T *p)
+nfsrpc_close(vnode_t vp, int doclose, NFSPROC_T *p)
{
struct nfsclclient *clp;
struct nfsclopenhead oh;
@@ -558,11 +558,14 @@ nfsrpc_close(vnode_t vp, struct ucred *cred, NFSPROC_T *p)
if (vnode_vtype(vp) != VREG)
return (0);
- error = nfscl_getclose(vp, cred, p, &clp, &oh);
+ if (doclose)
+ error = nfscl_getclose(vp, &clp, &oh);
+ else
+ error = nfscl_getclose(vp, &clp, NULL);
if (error)
return (error);
- if (!LIST_EMPTY(&oh))
+ if (doclose && !LIST_EMPTY(&oh))
nfsrpc_doclose(VFSTONFS(vnode_mount(vp)), &oh, p);
nfscl_clientrelease(clp);
return (0);
@@ -997,7 +1000,7 @@ nfsrpc_setattr(vnode_t vp, struct vattr *vap, NFSACL_T *aclp,
if (lckp != NULL)
nfscl_lockderef(lckp);
if (!openerr)
- (void) nfsrpc_close(vp, cred, p);
+ (void) nfsrpc_close(vp, 0, p);
if (error == NFSERR_GRACE || error == NFSERR_STALESTATEID ||
error == NFSERR_STALEDONTRECOVER || error == NFSERR_DELAY ||
error == NFSERR_OLDSTATEID) {
OpenPOWER on IntegriCloud