[PATCH 00/18] fs: fat: fix long name support

Marek Szyprowski m.szyprowski at samsung.com
Tue Dec 8 10:40:02 CET 2020


Hi

On 29.11.2020 03:01, Heinrich Schuchardt wrote:
> 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.

I've noticed some of those FAT issues over a year ago, but I never had 
enough time to start fixing it. Thanks for doing it! Feel free to add:

Acked-by: Marek Szyprowski <m.szyprowski at samsung.com>

> 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
>
>
Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



More information about the U-Boot mailing list