vfs: clean MNTK_FPLOOKUP if MNT_UNION is set
Elides checking it during lookup.
This commit is contained in:
parent
ca423b858b
commit
03337743db
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=364077
@ -372,6 +372,13 @@ tmpfs_mount(struct mount *mp)
|
||||
}
|
||||
tmp->tm_nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL,
|
||||
0) == 0;
|
||||
MNT_ILOCK(mp);
|
||||
if ((mp->mnt_flag & MNT_UNION) == 0) {
|
||||
mp->mnt_kern_flag |= MNTK_FPLOOKUP;
|
||||
} else {
|
||||
mp->mnt_kern_flag &= ~MNTK_FPLOOKUP;
|
||||
}
|
||||
MNT_IUNLOCK(mp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -462,7 +469,7 @@ tmpfs_mount(struct mount *mp)
|
||||
mp->mnt_flag |= MNT_LOCAL;
|
||||
mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED |
|
||||
MNTK_TEXT_REFS | MNTK_NOMSYNC;
|
||||
if (!nonc)
|
||||
if (!nonc && (mp->mnt_flag & MNT_UNION) == 0)
|
||||
mp->mnt_kern_flag |= MNTK_FPLOOKUP;
|
||||
MNT_IUNLOCK(mp);
|
||||
|
||||
|
@ -3701,8 +3701,6 @@ cache_fplookup_mp_supported(struct mount *mp)
|
||||
return (false);
|
||||
if ((mp->mnt_kern_flag & MNTK_FPLOOKUP) == 0)
|
||||
return (false);
|
||||
if ((mp->mnt_flag & MNT_UNION) != 0)
|
||||
return (false);
|
||||
return (true);
|
||||
}
|
||||
|
||||
|
@ -805,7 +805,7 @@ ffs_mount(struct mount *mp)
|
||||
*/
|
||||
if ((mp->mnt_kern_flag & MNTK_FPLOOKUP) != 0)
|
||||
panic("MNTK_FPLOOKUP set on mount %p when it should not be", mp);
|
||||
if ((mp->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) == 0)
|
||||
if ((mp->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS | MNT_UNION)) == 0)
|
||||
mp->mnt_kern_flag |= MNTK_FPLOOKUP;
|
||||
MNT_IUNLOCK(mp);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user