On Thu, May 08, 2014 at 04:14:07PM +0800, Wu, Josh wrote: > When write a file into FAT file system, it will search a match file in > root dir. So the find_directory_entry() will get the first cluster of > root dir content and search the directory item one by one. If the file > is not found, we will call get_fatent_value() to get next cluster of root > dir via lookup the FAT table and continue the search. > > The issue is in FAT16/12 system, we cannot get root dir's next clust > from FAT table. The FAT table only be use to find the clust of data > aera in FAT16/12. > > In FAT16/12 if the clust is in root dir, the clust number is a negative > number or 0, 1. Since root dir is located in front of the data area. > Data area start clust #2. So the root dir clust number should < 2. > > This patch will check above situation before call get_fatenv_value(). > If curclust is < 2, include minus number, we just increase one on the > curclust since root dir is in continous cluster. > > The patch also add a sanity check for entry in get_fatenv_value(). > > Signed-off-by: Josh Wu <josh...@atmel.com>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot