#
445d3d22 |
| 20-Feb-2024 |
Stefan Eßer <se@FreeBSD.org> |
msdosfs: fix potential inode collision on FAT12 and FAT16
FAT file systems do not use inodes, instead all file meta-information is stored in directory entries.
FAT12 and FAT16 use a fixed size area
msdosfs: fix potential inode collision on FAT12 and FAT16
FAT file systems do not use inodes, instead all file meta-information is stored in directory entries.
FAT12 and FAT16 use a fixed size area for root directories, with typically 512 entries of 32 bytes each (for a total of 16 KB) on hard disk formats. The file system data is stored in clusters of typically 512 to 4096 bytes, depending on the size of the file system.
The current code uses the offset of a DOS 8.3 style directory entry as a pseudo-inode, which leads to inode values of 0 to 16368 for typical root directories with 512 entries.
Sub-directories use 2 cluster length plus the byte offset of the directory entry in the data area for the pseudo-inode, which may be as low as 1024 in case of 512 byte clusters. A sub-directory in cluster 2 and with 512 byte clusters will therefore lead to a re-use of inode 1024 when there are at least 32 DOS 8.3 style filenames in the root directory (or 11 14-character Windows long file names, each of which takes up 3 directory entries).
FAT32 file systems are not affected by this issue and FAT12/FAT16 file systems with larger cluster sizes are unlikely to have as many directory entries in the root directory as are required to cause the collision.
This commit leads to inode numbers that are guaranteed to not collide for all valid FAT12 and FAT16 file system parameters. It does also provide a small speed-up due to more efficient use of the vnode cache.
Approved by: mckusick MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D43978
show more ...
|
Revision tags: release/14.0.0 |
|
#
71625ec9 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c comment pattern
Remove /^/[*/]\s*\$FreeBSD\$.*\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0 |
|
#
85fb840e |
| 07-Aug-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
msdosfs: drop now unused DE_RENAME
Submitted by: trasz Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/
msdosfs: drop now unused DE_RENAME
Submitted by: trasz Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31464
show more ...
|
#
95d42526 |
| 01-Aug-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
msdosfs: fix rename
Use the same locking algorithm for msdosfs_rename() as used by ufs_rename(). Convert doscheckpath() to non-sleeping version.
Reported by: trasz PR: 257522 In collaboration with:
msdosfs: fix rename
Use the same locking algorithm for msdosfs_rename() as used by ufs_rename(). Convert doscheckpath() to non-sleeping version.
Reported by: trasz PR: 257522 In collaboration with: pho Reviewed by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31464
show more ...
|
#
ae7e8a02 |
| 01-Aug-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
msdosfs deget(): add locking flags argument
LK_EXCLUSIVE must be passed always, some consumers need the ability to specify LK_NOWAIT
Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD F
msdosfs deget(): add locking flags argument
LK_EXCLUSIVE must be passed always, some consumers need the ability to specify LK_NOWAIT
Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31464
show more ...
|
#
92d4e088 |
| 01-Aug-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
msdosfs: unstaticise msdosfs_lookup_
and rename it to msdosfs_lookup_ino(), similarly to UFS
Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential
msdosfs: unstaticise msdosfs_lookup_
and rename it to msdosfs_lookup_ino(), similarly to UFS
Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31464
show more ...
|
Revision tags: release/13.0.0 |
|
#
ba2cfa80 |
| 22-Feb-2021 |
Alex Richardson <arichardson@FreeBSD.org> |
Fix makefs bootstrap after d485c77f203fb0f4cdc08dea5ff81631b51d8809
The makefs msdosfs code includes fs/msdosfs/denode.h which directly uses struct buf from <sys/buf.h> rather than the makefs struct
Fix makefs bootstrap after d485c77f203fb0f4cdc08dea5ff81631b51d8809
The makefs msdosfs code includes fs/msdosfs/denode.h which directly uses struct buf from <sys/buf.h> rather than the makefs struct m_buf. To work around this problem provide a local denode.h that includes ffs/buf.h and defines buf as an alias for m_buf.
Reviewed By: kib, emaste Differential Revision: https://reviews.freebsd.org/D28835
show more ...
|
#
2bfd8992 |
| 15-Feb-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
vnode: move write cluster support data to inodes.
The data is only needed by filesystems that 1. use buffer cache 2. utilize clustering write support.
Requested by: mjg Reviewed by: asomers (previo
vnode: move write cluster support data to inodes.
The data is only needed by filesystems that 1. use buffer cache 2. utilize clustering write support.
Requested by: mjg Reviewed by: asomers (previous version), fsu (ext2 parts), mckusick Tested by: pho Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28679
show more ...
|
#
d485c77f |
| 18-Feb-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Remove #define _KERNEL hacks from libprocstat
Make sys/buf.h, sys/pipe.h, sys/fs/devfs/devfs*.h headers usable in userspace, assuming that the consumer has an idea what it is for. Unhide more materi
Remove #define _KERNEL hacks from libprocstat
Make sys/buf.h, sys/pipe.h, sys/fs/devfs/devfs*.h headers usable in userspace, assuming that the consumer has an idea what it is for. Unhide more material from sys/mount.h and sys/ufs/ufs/inode.h, sys/ufs/ufs/ufsmount.h for consumption of userspace tools, with the same caveat.
Remove unacceptable hack from usr.sbin/makefs which relied on sys/buf.h being unusable in userspace, where it override struct buf with its own definition. Instead, provide struct m_buf and struct m_vnode and adapt code to use local variants.
Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D28679
show more ...
|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0 |
|
#
c5c3ba6b |
| 03-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r351317 through r351731.
|
#
476b0ab7 |
| 21-Aug-2019 |
Ed Maste <emaste@FreeBSD.org> |
makefs: share denode.h between kernel msdosfs and makefs
There is no need to duplicate this file when it can be trivially shared (just exposing sections previously under #ifdef _KERNEL).
MFC with:
makefs: share denode.h between kernel msdosfs and makefs
There is no need to duplicate this file when it can be trivially shared (just exposing sections previously under #ifdef _KERNEL).
MFC with: r351273 Differential Revision: The FreeBSD Foundation
show more ...
|
Revision tags: release/11.3.0, release/12.0.0 |
|
#
14b841d4 |
| 11-Aug-2018 |
Kyle Evans <kevans@FreeBSD.org> |
MFH @ r337607, in preparation for boarding
|
#
bbd7a929 |
| 04-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r336870 through r337285, and resolve conflicts.
|
#
22e56aea |
| 30-Jul-2018 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: use same max filesize #define as NetBSD and move to header
For use by makefs msdosfs support.
Obtained from: NetBSD denode.h 1.6 Sponsored by: The FreeBSD Foundation
|
#
6ae00e30 |
| 24-Jul-2018 |
Ed Maste <emaste@FreeBSD.org> |
Revert msdosfs MAKEFS #ifdef changes from r319870
These changes are not needed for current msdosfs makefs WIP.
Submitted by: Siva Mahadevan Sponsored by: The FreeBSD Foundation
|
Revision tags: release/11.2.0 |
|
#
d63027b6 |
| 27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/fs: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error
sys/fs: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
show more ...
|
Revision tags: release/10.4.0, release/11.1.0 |
|
#
4198293b |
| 17-Jun-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r319801 through r320041.
|
#
db20c27d |
| 12-Jun-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: adjust #ifdefs to be similar to NetBSD
- Add header guards where missing - Make parts available for use in makefs
Sponsored by: The FreeBSD Foundation
|
#
a14eb6db |
| 03-Jun-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r319480 through r319547.
|
#
6a1c2e1f |
| 02-Jun-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: use mem{cpy,move,set} instead of bcopy,bzero
This somewhat simplifies use of msdosfs code in userland (for makefs), reduces diffs with NetBSD and is standard C as of C89.
Reviewed by: imp
msdosfs: use mem{cpy,move,set} instead of bcopy,bzero
This somewhat simplifies use of msdosfs code in userland (for makefs), reduces diffs with NetBSD and is standard C as of C89.
Reviewed by: imp MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D11014
show more ...
|
#
27c24068 |
| 22-May-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r318560 through r318657.
|
#
9287dbaa |
| 21-May-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: capitalize FAT appropriately
Diff reduction with NetBSD, including some nearby minor whitespace or style fixes.
Obtained from: NetBSD Sponsored by: The FreeBSD Foundation
|
#
ea1e967c |
| 19-May-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r318380 through r318559.
|
#
23c53312 |
| 19-May-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: use C99 types
General cleanup, for diff reduction with NetBSD and future use by FAT support in makefs.
Submitted by: Siva Mahadevan <smahadevan@freebsdfoundation.org> Obtained from: NetBSD
msdosfs: use C99 types
General cleanup, for diff reduction with NetBSD and future use by FAT support in makefs.
Submitted by: Siva Mahadevan <smahadevan@freebsdfoundation.org> Obtained from: NetBSD Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10821
show more ...
|
Revision tags: release/11.0.1 |
|
#
8c4282b3 |
| 24-Sep-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r305892 through r306302.
|