/freebsd/sys/modules/msdosfs/ |
H A D | Makefile | diff 40373cf5b87fe5ac39830b31f28994b6729b3215 Fri Jun 09 14:06:22 CEST 2017 Konstantin Belousov <kib@FreeBSD.org> 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
|
/freebsd/sbin/mount_msdosfs/ |
H A D | mount_msdosfs.8 | diff 40373cf5b87fe5ac39830b31f28994b6729b3215 Fri Jun 09 14:06:22 CEST 2017 Konstantin Belousov <kib@FreeBSD.org> 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
|
/freebsd/sys/fs/msdosfs/ |
H A D | msdosfsmount.h | diff 40373cf5b87fe5ac39830b31f28994b6729b3215 Fri Jun 09 14:06:22 CEST 2017 Konstantin Belousov <kib@FreeBSD.org> 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
|
H A D | msdosfs_vfsops.c | diff 40373cf5b87fe5ac39830b31f28994b6729b3215 Fri Jun 09 14:06:22 CEST 2017 Konstantin Belousov <kib@FreeBSD.org> 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
|
H A D | msdosfs_vnops.c | diff 40373cf5b87fe5ac39830b31f28994b6729b3215 Fri Jun 09 14:06:22 CEST 2017 Konstantin Belousov <kib@FreeBSD.org> 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
|
/freebsd/sys/conf/ |
H A D | files | diff 40373cf5b87fe5ac39830b31f28994b6729b3215 Fri Jun 09 14:06:22 CEST 2017 Konstantin Belousov <kib@FreeBSD.org> 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
|