diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-05-31 19:08:22 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-05-31 19:08:22 +0000 |
commit | 2d231cab685a8afc58e0568e6b77d5769e6205a6 (patch) | |
tree | 8f900fed4e281a6120338e98ed1d3098a6889f49 /sys/nfsserver | |
parent | afc098b3e1d0431a14fa7a4d4046e47b5ea60666 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/nfsserver/nfs_serv.c | 4 |
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 |