diff options
-rw-r--r-- | sys/kern/vfs_mount.c | 6 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 1 |
2 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index bdfb1c6..1f6e1d9 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -709,7 +709,7 @@ update: error = vfs_allocate_syncvnode(mp); } else { if (mp->mnt_syncer != NULL) - vput(mp->mnt_syncer); + vrele(mp->mnt_syncer); mp->mnt_syncer = NULL; } vfs_unbusy(mp, td); @@ -1052,7 +1052,7 @@ update: error = vfs_allocate_syncvnode(mp); } else { if (mp->mnt_syncer != NULL) - vput(mp->mnt_syncer); + vrele(mp->mnt_syncer); mp->mnt_syncer = NULL; } vfs_unbusy(mp, td); @@ -1252,7 +1252,7 @@ dounmount(mp, flags, td) mp->mnt_flag &=~ MNT_ASYNC; cache_purgevfs(mp); /* remove cache entries for this file sys */ if (mp->mnt_syncer != NULL) - vput(mp->mnt_syncer); + vrele(mp->mnt_syncer); /* Move process cdir/rdir refs on fs root to underlying vnode. */ if (VFS_ROOT(mp, &fsrootvp) == 0) { if (mp->mnt_vnodecovered != NULL) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 1684782..c0b2ace 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -3080,6 +3080,7 @@ sync_inactive(ap) } */ *ap; { + VOP_UNLOCK(ap->a_vp, 0, ap->a_td); vgone(ap->a_vp); return (0); } |