[U-Boot] [PATCH] fs: fat: fix bug when write size is less than a sector size

Josh Wu josh.wu at atmel.com
Tue Jul 23 12:16:18 CEST 2013


Hi, Dear Wolfgang Denk

On 7/19/2013 7:20 PM, Wolfgang Denk wrote:
> Dear Josh Wu,
>
> In message <51E90A3D.6000007 at atmel.com> you wrote:
>>> Why would this be needed?  The case of a partial write is covered
>>> further down below in the code, in the "if (size % mydata->sect_size)"
>>> part...
>> The call of disk_write() will pass the sector size as 0. That will cause
>> the mmc driver stalled.
> I think instead of "sector size" you mean the number of sectors.  The
> sector size is fixed.

yes, I mean the number of sectors.

>
> Big question: why should we call disk_write() at all when the count is
> zero? Maybe a simple
>
> 	if ((size / mydata->sect_size) > 0) {
> 		if (disk_write(startsect, size / mydata->sect_size, buffer) < 0) {
> 			...
> 		}
> 	}
>
> would fix this issue?

I agree with above changes. It make the logical clearer:
    Step 1. write buffer in sectors. If buffer size is less than one 
sector we don't need to call disk_write() with zero sector.
    Step 2. write remain buffer in one sector.

So I think I will send a v2 patch according to your suggestion. Thanks.

>
>
> Best regards,
>
> Wolfgang Denk
>

Best Regards,
Josh Wu


More information about the U-Boot mailing list