diff options
-rw-r--r-- | sys/fs/hpfs/hpfs_vfsops.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c index 5d55356..2ef7dc6 100644 --- a/sys/fs/hpfs/hpfs_vfsops.c +++ b/sys/fs/hpfs/hpfs_vfsops.c @@ -323,7 +323,11 @@ failed: 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 @@ hpfs_unmount( } 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")); |