
On 09.06.20 11:35, Christian Gmeiner wrote:
Hi
Am Di., 9. Juni 2020 um 09:19 Uhr schrieb Heinrich Schuchardt xypron.glpk@gmx.de:
On 09.06.20 09:09, Christian Gmeiner wrote:
According to the FAT specification it is valid to have files with an attribute value of 0x0. This fixes a regression where different U-Boot versions are showing different amount of files on the same storage device. With this change U-Boot shows the same number of files and folders as Linux and Windows.
Fixes: 39606d462c ("fs: fat: handle deleted directory entries correctly") Signed-off-by: Christian Gmeiner christian.gmeiner@gmail.com
Thanks for reporting and resolving the issue.
Could you, please, provide a test image to reproduce the issue.
What are the requirements for such a test image?
I am looking for a file with a FAT file system that I can mount on Linux and later in U-Boot to see that it is correct in Linux but appears corrupted in U-Boot without your patch.
When thinking about a test case it would be even better if you could provide the sequence of commands that creates such an image file, e.g.
dd if=/dev/zero of=test.img bs=64k count=1 mkfs.vfat test.img mkdir mnt mount test.img mnt mkdir mnt/foo touch mnt/bar rmdir mnt/foo ls mnt -la umount mnt
For testing we can use the sandbox:
make sandbox_defconfig ./u-boot host bind 1 test.img ls host 1:0
The sequence above does not show the problem. Here we need your experience.
Best regards
Heinrich
Further it would be helpful to add a test case in test/py/tests/test_fs.
I can try it but I have almost no overview on how to do it.
Best regards
Heinrich
fs/fat/fat.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/fs/fat/fat.c b/fs/fat/fat.c index 7fd29470c1..9578b74bae 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -949,9 +949,7 @@ static int fat_itr_next(fat_itr *itr) /* Volume label or VFAT entry, skip */ continue; }
} else if (!(dent->attr & ATTR_ARCH) &&
!(dent->attr & ATTR_DIR))
continue;
} /* short file name */ break;