[PATCH v2 0/5] fs/fat: fix handling of full disk
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Sun Jul 31 13:58:32 CEST 2022
Currently we have two functions with redundant coding to find an empty
cluster:
* find_empty_cluster() seeks from the beginning of the FAT table
* determine_fatent() seeks after a given entry
Both do not detect the end of the FAT table correctly and return an invalid
cluster number if no empty entry if found.
Correctly determine empty FAT entries and full disk correctly.
Carve out a function for creating directory entries to avoid code
duplication.
Provide a unit test checking that a full FAT16 root directory is
recognized. For other file systems testing is too time consuming.
FAT32 allows 65536 entries per directory.
v2:
Handle errors returned by fat_create_dir_entry()
Add unit test
Heinrich Schuchardt (5):
fs: fat: finding an empty FAT cluster
fs: fat: determine_fatent() error handling
fs: fat: carve out fat_create_dir_entry()
test: let fs_obj_mkdir() provide full file system type
test: add test for full FAT16 directory
fs/fat/fat_write.c | 161 ++++++++++++++--------------
test/py/tests/test_fs/conftest.py | 6 +-
test/py/tests/test_fs/test_mkdir.py | 72 ++++++++-----
3 files changed, 131 insertions(+), 108 deletions(-)
--
2.36.1
More information about the U-Boot
mailing list