[U-Boot] fatls returncode

Mirza Krak mirza.krak at hostmobility.com
Mon Mar 27 07:54:03 UTC 2017


Dear Wolfgang.

2017-03-23 16:13 GMT+01:00 Wolfgang Denk <wd at denx.de>:
> Dear Mirza,
>
> In message <CAJ=nTsvH4XPk_b0SWqHX3gbVsqCbCxro=O20fQ1rr2dcgXQQMg at mail.gmail.com> you wrote:
>>
>> I am running U-boot 2015.04 and experiencing some issues with "fatls" command.
> ...
>> Normally "fatls" returns "0" when it does a successful list. But we
>> have found a case where it does not even though everything seems to
>> work fine. Below is a log with debug enabled (obfuscated filenames
>> since I got this flash drive from a customer).
>
> Please update to a recent versionof the code.  The return code
> handling has probably been fixed by this commit:
>
> 0a04ed8   2015-09-11 17:15:21 -0400   FIX: fat: Provide correct return code from disk_{read|write} to upper layers

I did an update (cherry-picked FAT related commits from upstream), but
I still get the same result.

Analyzing the code in fs/fat/fat.c:do_fat_read_at (which is called by
the fatls command) one can see that "ret" is set in three locations.
In my case I never reach any of these three, since my exit path is:

fs/fat/fat.c:

1139                 /* If end of rootdir reached */
1140                 if (rootdir_end) {
1141                         if (dols == LS_ROOT) {
1142                                 printf("\n%d file(s), %d dir(s)\n\n",
1143                                        files, dirs);
1144                                 *size = 0;
1145                         }
1146                         goto exit;
1147                 }


So either this exit path is actually an error and it is correct as-is,
or this path should set "ret = 0". My knowledge of FAT is limited so I
can not really tell which it should be but there is no indications in
the code/comments that this exit path is an error.

-- 
Med Vänliga Hälsningar / Best Regards

*******************************************************************
Mirza Krak
Host Mobility AB
mirza.krak at hostmobility.com
Anders Personsgatan 12, 416 64 Göteborg
Sweden
http://www.hostmobility.com
Direct: +46 31 31 32 704
Phone: +46 31 31 32 700
Fax: +46 31 80 67 51
Mobile: +46 730 28 06 22
*******************************************************************


More information about the U-Boot mailing list