[U-Boot] [PATCH v2] fs: fat: assign rootdir sector when accessing root directory

Thomas RIENOESSL thomas.rienoessl at bachmann.info
Tue Nov 13 13:00:59 UTC 2018


This fixes problems accessing drives formated under
Windows as FAT16.

Changes v2:
 - unbreak fat32

Change-Id: Ideeca97525d3009b99de35b017707af11fda27c1
Signed-off-by: Thomas RIENOESSL <thomas.rienoessl at bachmann.info>
---
 fs/fat/fat.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index 4b722fc5ca..7b7d43d997 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -720,7 +720,10 @@ static void *next_cluster(fat_itr *itr)
 	if (itr->last_cluster)
 		return NULL;
 
-	sect = clust_to_sect(itr->fsdata, itr->clust);
+	if (itr->fsdata->fatsize != 32 && itr->is_root)
+		sect = mydata->rootdir_sect;
+	else
+		sect = clust_to_sect(itr->fsdata, itr->clust);
 
 	debug("FAT read(sect=%d), clust_size=%d, DIRENTSPERBLOCK=%zd\n",
 	      sect, itr->fsdata->clust_size, DIRENTSPERBLOCK);
-- 
2.19.1



More information about the U-Boot mailing list