*** kern/vfs_syscalls.c-	Mon Sep 28 10:21:02 1998
--- kern/vfs_syscalls.c	Thu Dec 10 18:31:15 1998
***************
*** 428,434 ****
--- 428,436 ----
  
  	simple_lock(&mountlist_slock);
  	mp->mnt_flag |= MNT_UNMOUNT;
+ #ifndef CITI
  	lockmgr(&mp->mnt_lock, LK_DRAIN | LK_INTERLOCK, &mountlist_slock, p);
+ #endif
   	mp->mnt_flag &=~ MNT_ASYNC;
   	vnode_pager_umount(mp);	/* release cached vnodes */
   	cache_purgevfs(mp);	/* remove cache entries for this file sys */
***************
*** 443,450 ****
--- 445,454 ----
   		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);
  		return (error);
***************
*** 456,463 ****
   	}
  	mp->mnt_vfc->vfc_refcount--;
  	if (mp->mnt_vnodelist.lh_first != NULL)
! 		panic("unmount: dangling vnode");
  	lockmgr(&mp->mnt_lock, LK_RELEASE | LK_INTERLOCK, &mountlist_slock, p);
  	if (mp->mnt_flag & MNT_MWAIT)
  		wakeup((caddr_t)mp);
  	free((caddr_t)mp, M_MOUNT);
--- 460,469 ----
   	}
  	mp->mnt_vfc->vfc_refcount--;
  	if (mp->mnt_vnodelist.lh_first != NULL)
! 		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);
