Remove msdosfs -o large support.
authorkib <kib@FreeBSD.org>
Fri, 9 Jun 2017 12:06:22 +0000 (12:06 +0000)
committerkib <kib@FreeBSD.org>
Fri, 9 Jun 2017 12:06:22 +0000 (12:06 +0000)
commitef2e1a3e5a6de0b274f919f5534d9af659093b0e
tree5dbb82910e7d6504230eb0ad8e5bc7e4acae8c40
parentf7034622774f0f9608565c170988a236598feeb5
Remove msdosfs -o large support.

Its purpose was to translate the values for msdosfs inode numbers,
which is calculated from the msdosfs structures describing the file,
into the range representable by 32bit ino_t.  The translation acted
for filesystems larger than 128Gb, it reserved the range 0xf0000000
(FILENO_FIRST_DYN) to UINT32_MAX and remembered some arbitrary
translation of ino >= FILENO_FIRST_DYN into this range.  It consumed
memory that could be only freed by unmount, and the translation was
not stable across remounts.

With ino_t type extended to 64 bit, there is no such issue and values
can be returned without compaction to 32bit.  That is, for the native
environments, the translation layer is not necessary and adds
significant undeserved code complexity.  For compat ABIs which use
32bit ino_t, the vfs.ino64_trunc_error sysctl provides some measures
to soften the failure mode when inode numbers truncation is not safe.

Discussed with: bde
Sponsored by: The FreeBSD Foundation
sbin/mount_msdosfs/mount_msdosfs.8
sys/conf/files
sys/fs/msdosfs/msdosfs_fileno.c [deleted file]
sys/fs/msdosfs/msdosfs_vfsops.c
sys/fs/msdosfs/msdosfs_vnops.c
sys/fs/msdosfs/msdosfsmount.h
sys/modules/msdosfs/Makefile