diff options
author | avg <avg@FreeBSD.org> | 2016-07-13 09:03:01 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2016-07-13 09:03:01 +0000 |
commit | ed0c38b77c1394455f04c43991e8e90d848a6923 (patch) | |
tree | 36f6aae196f182a718747387e2d3756d4223657c /sys/kern/vfs_mount.c | |
parent | aeeaa96a4cc498f148b7c41105a8de9a8b580d86 (diff) | |
download | FreeBSD-src-ed0c38b77c1394455f04c43991e8e90d848a6923.zip FreeBSD-src-ed0c38b77c1394455f04c43991e8e90d848a6923.tar.gz |
MFC r299913: dounmount: do not call mountcheckdirs() for mounts with MNT_IGNORE
Diffstat (limited to 'sys/kern/vfs_mount.c')
-rw-r--r-- | sys/kern/vfs_mount.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index f5f522e..496b852 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -1315,7 +1315,8 @@ dounmount(struct mount *mp, int flags, struct thread *td) */ if ((flags & MNT_FORCE) && VFS_ROOT(mp, LK_EXCLUSIVE, &fsrootvp) == 0) { - if (mp->mnt_vnodecovered != NULL) + if (mp->mnt_vnodecovered != NULL && + (mp->mnt_flag & MNT_IGNORE) == 0) mountcheckdirs(fsrootvp, mp->mnt_vnodecovered); if (fsrootvp == rootvnode) { vrele(rootvnode); @@ -1336,7 +1337,8 @@ dounmount(struct mount *mp, int flags, struct thread *td) if (error && error != ENXIO) { if ((flags & MNT_FORCE) && VFS_ROOT(mp, LK_EXCLUSIVE, &fsrootvp) == 0) { - if (mp->mnt_vnodecovered != NULL) + if (mp->mnt_vnodecovered != NULL && + (mp->mnt_flag & MNT_IGNORE) == 0) mountcheckdirs(mp->mnt_vnodecovered, fsrootvp); if (rootvnode == NULL) { rootvnode = fsrootvp; |