[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