summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_serv.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-05-31 19:08:22 +0000
committerrwatson <rwatson@FreeBSD.org>2004-05-31 19:08:22 +0000
commit2d231cab685a8afc58e0568e6b77d5769e6205a6 (patch)
tree8f900fed4e281a6120338e98ed1d3098a6889f49 /sys/nfsserver/nfs_serv.c
parentafc098b3e1d0431a14fa7a4d4046e47b5ea60666 (diff)
downloadFreeBSD-src-2d231cab685a8afc58e0568e6b77d5769e6205a6.zip
FreeBSD-src-2d231cab685a8afc58e0568e6b77d5769e6205a6.tar.gz
Release NFS subsystem lock and acquire Giant when calling into
vn_start_write().
Diffstat (limited to 'sys/nfsserver/nfs_serv.c')
-rw-r--r--sys/nfsserver/nfs_serv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c
index bc6e4ff..e578401 100644
--- a/sys/nfsserver/nfs_serv.c
+++ b/sys/nfsserver/nfs_serv.c
@@ -2349,7 +2349,11 @@ nfsrv_rename(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
error = ESTALE;
goto out1;
}
+ NFSD_UNLOCK();
+ mtx_lock(&Giant);
(void) vn_start_write(NULL, &mp, V_WAIT);
+ mtx_unlock(&Giant);
+ NFSD_LOCK();
nfsm_srvnamesiz(len);
/*
* Remember our original uid so that we can reset cr_uid before
OpenPOWER on IntegriCloud