From mboxrd@z Thu Jan 1 00:00:00 1970 From: Josh Wu Date: Thu, 25 Jul 2013 15:23:21 +0800 Subject: [U-Boot] [PATCH] fs: fat: don't call disk_write with zero sector num In-Reply-To: <1374659730-2634-1-git-send-email-josh.wu@atmel.com> References: <1374659730-2634-1-git-send-email-josh.wu@atmel.com> Message-ID: <51F0D269.5060309@atmel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, All On 7/24/2013 5:55 PM, Josh Wu wrote: > In the set_cluster() function, it will convert the buffer size to sector > numbers. Then call disk_write() to write by sector. > For remaining buffer, the size is less than a sector, call disk_write() > again to write them in one sector. > > But if the total buffer size is less then one sector, the original code > will call disk_write() with zero sector number. It is unnecessary. > So this patch fix this. Now it will not call disk_write() if total buffer size > is less than one sector. > > Signed-off-by: Josh Wu Forgot to mention that: this is the v2 patch for [PATCH] fs: fat: fix bug when write size is less than a sector size (http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/165997) Best Regards, Josh Wu > --- > fs/fat/fat_write.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c > index fd07240..a05327c 100644 > --- a/fs/fat/fat_write.c > +++ b/fs/fat/fat_write.c > @@ -568,9 +568,11 @@ set_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer, > > debug("clustnum: %d, startsect: %d\n", clustnum, startsect); > > - if (disk_write(startsect, size / mydata->sect_size, buffer) < 0) { > - debug("Error writing data\n"); > - return -1; > + if ((size / mydata->sect_size) > 0) { > + if (disk_write(startsect, size / mydata->sect_size, buffer) < 0) { > + debug("Error writing data\n"); > + return -1; > + } > } > > if (size % mydata->sect_size) {