summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2002-01-14 19:14:08 +0000
committerdillon <dillon@FreeBSD.org>2002-01-14 19:14:08 +0000
commit45630603d014a0a1695fe641fcc8c5e7dc39c6a9 (patch)
tree731d42e7e8b01a006f6187f79a55e331787073eb /sys/nfsserver
parent0b586944ea5d4a5f474eecc5df60a4735f24e6bf (diff)
downloadFreeBSD-src-45630603d014a0a1695fe641fcc8c5e7dc39c6a9.zip
FreeBSD-src-45630603d014a0a1695fe641fcc8c5e7dc39c6a9.tar.gz
The vnode was not being vput()'d in the EEXIST mknod case on the nfs
server side. This can lead to a system deadlock. Reviewed by: iedowse Tested by: Alexey G Misurenko <mag@caravan.ru>, iedowse Bug found with help by: Alexey G Misurenko <mag@caravan.ru> MFC at: earliest convenience
Diffstat (limited to 'sys/nfsserver')
-rw-r--r--sys/nfsserver/nfs_serv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c
index 0db5c9d..b9d54af 100644
--- a/sys/nfsserver/nfs_serv.c
+++ b/sys/nfsserver/nfs_serv.c
@@ -2000,6 +2000,8 @@ out:
error = VFS_VPTOFH(vp, &fhp->fh_fid);
if (!error)
error = VOP_GETATTR(vp, vap, cred, td);
+ }
+ if (vp) {
vput(vp);
vp = NULL;
nd.ni_vp = NULL;
OpenPOWER on IntegriCloud