the resulting applications report strange errors on "large" (> 2 GiB)
partitions:
Seek to -2118967808:Invalid argument
Warning: Filesystem is FAT32 according to fat_length and fat32_length fields,
but has only 8613 clusters, less than the required minimum of 65525.
This may lead to problems on some systems.
This appears to be due to compilation with a 32-bit off_t and lseek() library
function.
Use lseek64 for positioning, and change some suspect uses of off_t to loff_t.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
This patch reorganizes heap memory usage by dosfsck and mkdosfs
to support limited-memory embedded systems - in particular, those
based on Xilinx's Microblaze processor. It also adds a few comments.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
* FAT16 filesystems with 65525 clusters or more will be rejected
(Before, this was not tested for. Up to 65535 clusters were accepted
as good).
* For FAT32 filesystems with less than 65525 a warning message will be
output.
Macro MSDOS_FAT12 is now replaced by FAT12_THRESHOLD to make it
consistent with the definition in mkdosfs and to remove the dependency
on the kernel version.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>