Index: conf/files
===================================================================
RCS file: /u/open/cvs/src/sys/conf/files,v
retrieving revision 1.245
diff -u -r1.245 files
--- conf/files	28 Mar 2002 18:23:07 -0000	1.245
+++ conf/files	20 Aug 2002 21:55:35 -0000
@@ -748,17 +748,39 @@
 file netipx/ipx_cksum.c			ipx
 file netipx/spx_debug.c			ipx
 file netipx/spx_usrreq.c		ipx
-file nfs/krpc_subr.c			nfsclient
-file nfs/nfs_bio.c			nfsclient
-file nfs/nfs_boot.c			nfsclient
-file nfs/nfs_node.c			nfsclient
-file nfs/nfs_serv.c			nfsserver
-file nfs/nfs_socket.c			nfsserver | nfsclient
-file nfs/nfs_srvcache.c			nfsserver
-file nfs/nfs_subs.c			nfsserver | nfsclient
-file nfs/nfs_syscalls.c			nfsserver | nfsclient
-file nfs/nfs_vfsops.c			nfsclient
-file nfs/nfs_vnops.c			nfsclient
+#file nfs/krpc_subr.c			nfsclient
+#file nfs/nfs_bio.c			nfsclient
+#file nfs/nfs_boot.c			nfsclient
+#file nfs/nfs_node.c			nfsclient
+#file nfs/nfs_serv.c			nfsserver
+#file nfs/nfs_socket.c			nfsserver | nfsclient
+#file nfs/nfs_srvcache.c			nfsserver
+#file nfs/nfs_subs.c			nfsserver | nfsclient
+#file nfs/nfs_syscalls.c			nfsserver | nfsclient
+#file nfs/nfs_vfsops.c			nfsclient
+#file nfs/nfs_vnops.c			nfsclient
+file rpc/rpcclnt.c			rpcclnt
+file nfs4/nfs4_gss.c			nfsv4server | nfsv4client
+file nfs4/nfs4_socket.c			nfsv4server | nfsv4client
+file nfs4/nfs4_subs.c			nfsv4server | nfsv4client
+file nfs4/nfs4_syscalls.c		nfsv4server | nfsv4client
+file nfs4/nfs4_util.c			nfsv4server | nfsv4client
+file nfs4fs/nfs4fs_decode.c		nfsv4client
+file nfs4fs/nfs4fs_encode.c		nfsv4client
+file nfs4fs/nfs4_bio.c			nfsv4client
+file nfs4fs/nfs4_node.c			nfsv4client
+file nfs4fs/nfs4_proc.c			nfsv4client
+file nfs4fs/nfs4_vfsops.c		nfsv4client
+file nfs4fs/nfs4_vnops.c		nfsv4client
+file nfsd4/compound.c			nfsv4server
+file nfsd4/ctl.c			nfsv4server
+file nfsd4/export.c			nfsv4server
+file nfsd4/fh.c				nfsv4server
+file nfsd4/proc.c			nfsv4server
+file nfsd4/state.c			nfsv4server
+file nfsd4/stats.c			nfsv4server
+file nfsd4/svc.c			nfsv4server
+file nfsd4/vfs.c			nfsv4server
 file ufs/ffs/ffs_alloc.c		ffs | mfs
 file ufs/ffs/ffs_balloc.c		ffs | mfs
 file ufs/ffs/ffs_inode.c		ffs | mfs
Index: nfs/nfs.h
===================================================================
RCS file: /u/open/cvs/src/sys/nfs/nfs.h,v
retrieving revision 1.17
diff -u -r1.17 nfs.h
--- nfs/nfs.h	10 Feb 2002 22:02:05 -0000	1.17
+++ nfs/nfs.h	20 Aug 2002 21:56:31 -0000
@@ -266,8 +266,12 @@
 	struct mbuf	*r_mrep;
 	struct mbuf	*r_md;
 	caddr_t		r_dpos;
+#ifdef NFSV4
+	struct nfs4mount *r_nmp;
+#else
 	struct nfsmount *r_nmp;
 	struct vnode	*r_vp;
+#endif
 	u_int32_t	r_xid;
 	int		r_flags;	/* flags on request, see below */
 	int		r_retry;	/* max retransmission count */
Index: kern/vfs_syscalls.c
===================================================================
RCS file: /u/open/cvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.95
diff -u -r1.95 vfs_syscalls.c
--- kern/vfs_syscalls.c	14 Mar 2002 01:27:06 -0000	1.95
+++ kern/vfs_syscalls.c	20 Aug 2002 21:56:47 -0000
@@ -442,7 +442,9 @@
 	simple_lock(&mountlist_slock);
 	mp->mnt_flag |= MNT_UNMOUNT;
 	vfs_unbusy(mp, p);
+#ifndef NFSV4
 	lockmgr(&mp->mnt_lock, LK_DRAIN | LK_INTERLOCK, &mountlist_slock, p);
+#endif
  	mp->mnt_flag &=~ MNT_ASYNC;
  	cache_purgevfs(mp);	/* remove cache entries for this file sys */
  	if (mp->mnt_syncer != NULL)
@@ -456,8 +458,10 @@
  		if ((mp->mnt_flag & MNT_RDONLY) == 0 && mp->mnt_syncer == NULL)
  			(void) vfs_allocate_syncvnode(mp);
 		mp->mnt_flag &= ~MNT_UNMOUNT;
+#ifndef NFSV4
 		lockmgr(&mp->mnt_lock, LK_RELEASE | LK_INTERLOCK | LK_REENABLE,
 		    &mountlist_slock, p);
+#endif
 		if (mp->mnt_flag & MNT_MWAIT)
 			wakeup((caddr_t)mp);
 		mp->mnt_flag &= ~MNT_MWAIT;
@@ -470,8 +474,10 @@
  	}
 	mp->mnt_vfc->vfc_refcount--;
 	if (mp->mnt_vnodelist.lh_first != NULL)
-		panic("unmount: dangling vnode");
+		printf("unmount: dangling vnode\n");
+#ifndef NFSV4
 	lockmgr(&mp->mnt_lock, LK_RELEASE | LK_INTERLOCK, &mountlist_slock, p);
+#endif
 	if (mp->mnt_flag & MNT_MWAIT)
 		wakeup((caddr_t)mp);
 	free((caddr_t)mp, M_MOUNT);
