mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
fs/fat/: add support for DOS 1.x formatted volumes
Add structure for parsed BPB information, struct fat_bios_param_block, and move all of the deserialization and validation logic from fat_fill_super() into fat_read_bpb(). Add a 'dos1xfloppy' mount option to infer DOS 2.x BIOS Parameter Block defaults from block device geometry for ancient floppies and floppy images, as a fall-back from the default BPB parsing logic. When fat_read_bpb() finds an invalid FAT filesystem and dos1xfloppy is set, fall back to fat_read_static_bpb(). fat_read_static_bpb() validates that the entire BPB is zero, and that the floppy has a DOS-style 8086 code bootstrapping header. Then it fills in default BPB values from media size and a table.[0] Media size is assumed to be static for archaic FAT volumes. See also: [1]. Fixes kernel.org bug #42617. [0]: https://en.wikipedia.org/wiki/File_Allocation_Table#Exceptions [1]: http://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html [[email protected]: fix missed error code] Signed-off-by: Conrad Meyer <[email protected]> Acked-by: OGAWA Hirofumi <[email protected]> Signed-off-by: OGAWA Hirofumi <[email protected]> Tested-by: Alan Cox <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
a19189e553
commit
190a8843de
3 changed files with 274 additions and 77 deletions
|
|
@ -172,6 +172,11 @@ nfs=stale_rw|nostale_ro
|
|||
To maintain backward compatibility, '-o nfs' is also accepted,
|
||||
defaulting to stale_rw
|
||||
|
||||
dos1xfloppy -- If set, use a fallback default BIOS Parameter Block
|
||||
configuration, determined by backing device size. These static
|
||||
parameters match defaults assumed by DOS 1.x for 160 kiB,
|
||||
180 kiB, 320 kiB, and 360 kiB floppies and floppy images.
|
||||
|
||||
|
||||
<bool>: 0,1,yes,no,true,false
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue