From: Sergei Shtylyov Date: Mon, 2 Jan 2012 06:54:29 +0000 (+0000) Subject: fat: reset VFAT short alias checksum on first match X-Git-Tag: v1.2~33^2~180 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=bf34e7d952939b1d4289ef62e7d940fbd227c72a;p=karo-tx-uboot.git 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 Signed-off-by: Martin Mueller --- diff --git a/fs/fat/fat.c b/fs/fat/fat.c index dbb8db92f0..1542194a1a 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -633,6 +633,7 @@ static dir_entry *get_dentfromdir (fsdata *mydata, int startsect, } #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 *buffer, unsigned long maxsize, #ifdef CONFIG_SUPPORT_VFAT else if (dols == LS_ROOT && mkcksum(dentptr->name) == prevcksum) { + prevcksum = 0xffff; dentptr++; continue; }