]> git.sur5r.net Git - u-boot/commit
fs: fat_write: fix the incorrect last cluster checking
authorWu, Josh <Josh.wu@atmel.com>
Thu, 8 May 2014 08:14:06 +0000 (16:14 +0800)
committerTom Rini <trini@ti.com>
Mon, 12 May 2014 20:31:50 +0000 (16:31 -0400)
commit2e98f70882f8c1a09b662137884c1435a97c9a1c
tree43b50a0850bd03e6e051477f42cab39468d9add4
parent06118973ede291df8617c4089972cbf888bdc96b
fs: fat_write: fix the incorrect last cluster checking

In fat_write.c, the last clust condition check is incorrect:

  if ((curclust >= 0xffffff8) || (curclust >= 0xfff8)) {
   ... ...
  }

For example, in FAT32 if curclust is 0x11000. It is a valid clust.
But on above condition check, it will be think as a last clust.

So the correct last clust check should be:
  in fat32, curclust >= 0xffffff8
  in fat16, curclust >= 0xfff8
  in fat12, curclust >= 0xff8

This patch correct the last clust check.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
fs/fat/fat_write.c
include/fat.h