--- /usr/src/sys/fs/hpfs/hpfs_vfsops.c Tue Oct 16 12:54:52 2007 +++ fs/hpfs/hpfs_vfsops.c Sun Jan 6 19:37:13 2008 @@ -323,7 +323,11 @@ if (bp) brelse (bp); mp->mnt_data = NULL; + DROP_GIANT(); + g_topology_lock(); g_vfs_close(cp, td); + g_topology_unlock(); + PICKUP_GIANT(); return (error); } @@ -353,7 +357,11 @@ } vinvalbuf(hpmp->hpm_devvp, V_SAVE, td, 0, 0); + DROP_GIANT(); + g_topology_lock(); g_vfs_close(hpmp->hpm_cp, td); + g_topology_unlock(); + PICKUP_GIANT(); vrele(hpmp->hpm_devvp); dprintf(("hpfs_umount: freeing memory...\n"));