diff options
author | dillon <dillon@FreeBSD.org> | 2002-01-14 19:14:08 +0000 |
---|---|---|
committer | dillon <dillon@FreeBSD.org> | 2002-01-14 19:14:08 +0000 |
commit | 45630603d014a0a1695fe641fcc8c5e7dc39c6a9 (patch) | |
tree | 731d42e7e8b01a006f6187f79a55e331787073eb /sys/nfsserver | |
parent | 0b586944ea5d4a5f474eecc5df60a4735f24e6bf (diff) | |
download | FreeBSD-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.c | 2 |
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; |