aboutsummaryrefslogtreecommitdiff
path: root/sys/fs
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2016-04-12 20:23:09 +0000
committerRick Macklem <rmacklem@FreeBSD.org>2016-04-12 20:23:09 +0000
commit13c581fc54aa120f3b20487709c8efb1f780ac2c (patch)
treecf7c12cd4fbf9b2fb823d795afeba814c396a430 /sys/fs
parent4e3ab010a2934578a104b292dd1702071533d816 (diff)
Notes
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/nfsserver/nfs_nfsdport.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c
index 44ae88e9cb95..a1e1204803f5 100644
--- a/sys/fs/nfsserver/nfs_nfsdport.c
+++ b/sys/fs/nfsserver/nfs_nfsdport.c
@@ -794,6 +794,11 @@ nfsvno_createsub(struct nfsrv_descript *nd, struct nameidata *ndp,
nvap->na_atime.tv_nsec = cverf[1];
error = VOP_SETATTR(ndp->ni_vp,
&nvap->na_vattr, nd->nd_cred);
+ if (error != 0) {
+ vput(ndp->ni_vp);
+ ndp->ni_vp = NULL;
+ error = NFSERR_NOTSUPP;
+ }
}
}
/*
@@ -1422,6 +1427,11 @@ nfsvno_open(struct nfsrv_descript *nd, struct nameidata *ndp,
nvap->na_atime.tv_nsec = cverf[1];
nd->nd_repstat = VOP_SETATTR(ndp->ni_vp,
&nvap->na_vattr, cred);
+ if (nd->nd_repstat != 0) {
+ vput(ndp->ni_vp);
+ ndp->ni_vp = NULL;
+ nd->nd_repstat = NFSERR_NOTSUPP;
+ }
} else {
nfsrv_fixattr(nd, ndp->ni_vp, nvap,
aclp, p, attrbitp, exp);