--- b/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -163,14 +163,14 @@ update_mp(struct mount *mp, struct thread *td) pmp->pm_mask = v & ALLPERMS; if (vfs_scanopt(mp->mnt_optnew, "dirmask", "%d", &v) == 1) pmp->pm_dirmask = v & ALLPERMS; - vfs_flagopt(mp->mnt_optnew, "shortname", - &pmp->pm_flags, MSDOSFSMNT_SHORTNAME); - vfs_flagopt(mp->mnt_optnew, "shortnames", - &pmp->pm_flags, MSDOSFSMNT_SHORTNAME); - vfs_flagopt(mp->mnt_optnew, "longname", - &pmp->pm_flags, MSDOSFSMNT_LONGNAME); - vfs_flagopt(mp->mnt_optnew, "longnames", - &pmp->pm_flags, MSDOSFSMNT_LONGNAME); + if (!vfs_flagopt(mp->mnt_optnew, "shortname", + &pmp->pm_flags, MSDOSFSMNT_SHORTNAME)) + vfs_flagopt(mp->mnt_optnew, "shortnames", + &pmp->pm_flags, MSDOSFSMNT_SHORTNAME); + if (!vfs_flagopt(mp->mnt_optnew, "longname", + &pmp->pm_flags, MSDOSFSMNT_LONGNAME)) + vfs_flagopt(mp->mnt_optnew, "longnames", + &pmp->pm_flags, MSDOSFSMNT_LONGNAME); vfs_flagopt(mp->mnt_optnew, "kiconv", &pmp->pm_flags, MSDOSFSMNT_KICONV); --