Hi,

Can you try this one?

Revert my last one patch?
It change the test code, before the while. I use your script on a Compact Flash and it looks fine for me (under linux).

Regards Michael

Check if the entry is a valid dir_slot entry, otherwise it is a dentry and the
name has to be taken by the get_name function

Signed-off-by: michael trimarchi <[EMAIL PROTECTED]>

---
 fs/fat/fat.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index 49c78ed..bc37cec 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -473,8 +473,14 @@ get_vfatname(fsdata *mydata, int curclust, __u8 *cluster,
 		while (slotptr2->id > 0x01) {
 			slotptr2++;
 		}
+
 		/* Save the real directory entry */
 		realdent = (dir_entry*)slotptr2 + 1;
+		if (slotptr2->attr != ATTR_VFAT) {
+			get_name ((dir_entry *)realdent, l_name);
+			goto out;
+		}
+
 		while ((__u8*)slotptr2 >= get_vfatname_block) {
 			slot2str(slotptr2, l_name, &idx);
 			slotptr2--;
@@ -494,6 +500,7 @@ get_vfatname(fsdata *mydata, int curclust, __u8 *cluster,
 	else if (*l_name == aRING) *l_name = 'å';
 	downcase(l_name);
 
+out:
 	/* Return the real directory entry */
 	memcpy(retdent, realdent, sizeof(dir_entry));
 
-- 
1.5.3.6

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to