[U-Boot] [PATCH] fs: fat: don't call disk_write with zero sector num
Josh Wu
josh.wu at atmel.com
Thu Jul 25 09:23:21 CEST 2013
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 <josh.wu at atmel.com>
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) {
More information about the U-Boot
mailing list