[U-Boot] [PATCH] fat: reset VFAT short alias checksum on first match

The VFAT short alias checksum read from a long file name is only overwritten when another long file name appears in a directory list. Until then it renders short file names invisible that have the same checksum. Reset the checksum on first match.
Signed-off-by: Sergei Shtylyov sshtylyov@ru.mvista.com Signed-off-by: Martin Mueller martin.mueller5@de.bosch.com
--- fs/fat/fat.c | 2 ++ 1 file changed, 2 insertions(+)
Index: u-boot/fs/fat/fat.c =================================================================== --- u-boot.orig/fs/fat/fat.c +++ u-boot/fs/fat/fat.c @@ -633,6 +633,7 @@ static dir_entry *get_dentfromdir (fsdat } #ifdef CONFIG_SUPPORT_VFAT if (dols && mkcksum(dentptr->name) == prevcksum) { + prevcksum = 0xffff; dentptr++; continue; } @@ -963,6 +964,7 @@ do_fat_read (const char *filename, void #ifdef CONFIG_SUPPORT_VFAT else if (dols == LS_ROOT && mkcksum(dentptr->name) == prevcksum) { + prevcksum = 0xffff; dentptr++; continue; }

Dear Sergei Shtylyov,
In message 201201021954.29410.sshtylyov@ru.mvista.com you wrote:
The VFAT short alias checksum read from a long file name is only overwritten when another long file name appears in a directory list. Until then it renders short file names invisible that have the same checksum. Reset the checksum on first match.
Signed-off-by: Sergei Shtylyov sshtylyov@ru.mvista.com Signed-off-by: Martin Mueller martin.mueller5@de.bosch.com
fs/fat/fat.c | 2 ++ 1 file changed, 2 insertions(+)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
Sergei Shtylyov
-
Wolfgang Denk