From mboxrd@z Thu Jan 1 00:00:00 1970 From: Romain Izard Date: Fri, 10 Jun 2011 09:36:08 +0200 Subject: [U-Boot] [PATCH] fat: Handle moved FAT32 root directory Message-ID: <1307691368-29196-1-git-send-email-romain.izard.pro@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de The default location of the root directory in a FAT32 partition is the same as its location in a FAT12/16 partition. But a difference is that in FAT32, it is possible for the root directory to move. This fix ensures that the parsing uses the root directory location stored in the PBR, instead of always using the default location. Signed-off-by: Romain Izard --- fs/fat/fat.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fs/fat/fat.c b/fs/fat/fat.c index c450bf6..22d34d3 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -798,6 +798,8 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize, if (mydata->fatsize == 32) { mydata->data_begin = mydata->rootdir_sect - (mydata->clust_size * 2); + cursect = mydata->data_begin + + (root_cluster * mydata->clust_size); } else { rootdir_size = ((bs.dir_entries[1] * (int)256 + bs.dir_entries[0]) * -- 1.7.0.4