[PATCH 00/18] fs: fat: fix long name support
Heinrich Schuchardt
xypron.glpk at gmx.de
Sun Nov 29 03:01:58 CET 2020
Since long name support was added to U-Boot's implementation of the
FAT file system corruption of the directories was observed when running
the UEFI Self Certifification Test.
The following problems are addressed by this series.
* short names were not unique
* long names directory entries were not deleted when a file was deleted
* directory entries released by file deletion were not reused
The first four patches are just resent to indicate the import sequence.
The following problems need to be addressed in further patches:
* When extending a file only available FAT entries after the last cluster
of the file are considered. Available FAT entries before are ignored.
* The case of no FAT entry found is not treated correctly.
* The free FAT count is not updated on FAT32.
* Some FAT related tests are not run on Gitlab CI.
* Add tests to detect directory corruption.
Heinrich Schuchardt (18):
fs: fat: avoid NULL dereference when root dir is full
fs: fat: directory entries starting with 0x05
fs: fat: use ATTR_ARCH instead of anonymous 0x20
fs: fat: correct first cluster for '..'
fs: fat: export fat_next_cluster()
fs: fat: create correct short names
fs: fat: pass shortname to fill_dir_slot
fs: fat: call set_name() only once
fs: fat: generate unique short names
fs: fat: dentry iterator for fill_dir_slot()
fs: fat: set start cluster for root directory
fs: fat: flush new directory cluster
fs: fat: fat_find_empty_dentries()
fs: fat: reuse deleted directory entries
fs: fat: search file should not allocate cluster
fs: fat: use constant DELETED_FLAG
fs: fat: first dentry of long name in FAT iterator
fs: fat: deletion of long file names
fs/fat/fat.c | 133 ++++++++----
fs/fat/fat_write.c | 532 +++++++++++++++++++++++++++++++++------------
include/fat.h | 7 +-
lib/Kconfig | 2 +-
4 files changed, 494 insertions(+), 180 deletions(-)
--
2.29.2
More information about the U-Boot
mailing list