--- kern/vfs_syscalls.c-	Wed Apr  4 16:23:28 2001
+++ kern/vfs_syscalls.c	Thu Jul 19 16:31:16 2001
@@ -440,7 +440,9 @@
 	simple_lock(&mountlist_slock);
 	mp->mnt_flag |= MNT_UNMOUNT;
 	vfs_unbusy(mp, p);
+#ifndef CITI
 	lockmgr(&mp->mnt_lock, LK_DRAIN | LK_INTERLOCK, &mountlist_slock, p);
+#endif
  	mp->mnt_flag &=~ MNT_ASYNC;
 #if !defined(UVM)
  	vnode_pager_umount(mp);	/* release cached vnodes */
@@ -457,8 +459,10 @@
  		if ((mp->mnt_flag & MNT_RDONLY) == 0 && mp->mnt_syncer == NULL)
  			(void) vfs_allocate_syncvnode(mp);
 		mp->mnt_flag &= ~MNT_UNMOUNT;
+#ifndef CITI
 		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;
@@ -471,8 +475,10 @@
  	}
 	mp->mnt_vfc->vfc_refcount--;
 	if (mp->mnt_vnodelist.lh_first != NULL)
-		panic("unmount: dangling vnode");
+		printf("unmount: dangling vnode\n");
+#ifndef CITI
 	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);
