2a4c01082a
* Update compatibility maximum cluster size when sector size is larger than 512 bytes. * Additional validation of values in FsInfo sector. * next_free_cluster cannot be 0 or 1, as these are reserved clusters * next_free_cluster must be a valid cluster (using BPB to validate) * free_cluster_count must be possible value (using BPB to validate) * Avoid data-loss edge-case on volumes over 138GB in size. Specifically, if the volume has more than 0x0FFF_FFF4 clusters, then the FAT will include an entry for clusters that are reserved values. Specifically, cluster number 0x0FFF_FFF7 is defined to mean BAD_SECTOR, while numbers 0x0FFF_FFF8 .. 0x0FFF_FFFF are defined to mean end-of-chain. This prevents these clusters from being part of any valid cluster chain. Therefore: 1. prevent setting these clusters to point to a valid next cluster 2. prevent reading these clusters as pointing to a valid next cluster Instead, always read/write these FAT entries to have next cluster value of BAD_SECTOR. * Reduce noisy warnings on FAT32. * The reserved bits in FAT entry must be preserved on update. * Change the set() implementation for FAT32 entries to return an actual Err(), when attempting to set values for cluster numbers that have special meaning. |
||
---|---|---|
.. | ||
byteorder_core_io.rs | ||
dir_entry.rs | ||
dir.rs | ||
file.rs | ||
fs.rs | ||
lib.rs | ||
table.rs | ||
time.rs |