From a5b858d3fd9e18072e6c667da827f7fa363e5707 Mon Sep 17 00:00:00 2001 From: kib Date: Mon, 5 Jun 2006 14:48:02 +0000 Subject: Temporary workaround to prevent leak of Giant from nfsd when calling lookup(). Reviewed by: tegge Tested by: "Arno J. Klaassen" , "Rong-en Fan" , Dmitriy Kirhlarov , Dmitry Pryanishnikov MFC after: 1 week Approved by: kan, pjd (mentors) --- sys/nfsserver/nfs_srvsubs.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sys/nfsserver/nfs_srvsubs.c') diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c index 2e6d8dd..e890c2a 100644 --- a/sys/nfsserver/nfs_srvsubs.c +++ b/sys/nfsserver/nfs_srvsubs.c @@ -876,6 +876,10 @@ nfs_namei(struct nameidata *ndp, fhandle_t *fhp, int len, } if (!lockleaf) cnp->cn_flags &= ~LOCKLEAF; + if (cnp->cn_flags & GIANTHELD) { + mtx_unlock(&Giant); + cnp->cn_flags &= ~GIANTHELD; + } /* * nfs_namei() guarentees that fields will not contain garbage -- cgit v1.1