[U-Boot] [PATCH v2 3/8] fat/fs: convert to directory iterators

Rob Clark
2017-08-14T14:56:00Z

On Mon, Aug 14, 2017 at 10:39 AM, Rob Clark <robdclark@gmail.com> wrote:
> On Mon, Aug 14, 2017 at 9:47 AM, BrÃ¼ns, Stefan
> <Stefan.Bruens@rwth-aachen.de> wrote:
>
>> Have you checked this case still works? AFAICS this is not covered in fs-
>> test.sh. Examples of suitables sandbox commands are given in the commit
>> message of:
>
> Directories split across clusters is definitely something that I've
> tested. Not sure if some of them had vfat names spanning a cluster,
> but handling that is inherent in the design, as it never needs more
> than a single dent at a time to parse vfat names.
>
>> 18a10d46f267057ede0490ddba71c106475b4eb1 (fat: handle paths that include ../)
>
> hmm, but it does look like I'm missing something to ../ back to root dir..
>

ok, looks like what I needed was:

@@ -696,7 +696,7 @@ static void fat_itr_child(fat_itr *itr, fat_itr *parent)
itr->cursect = itr->fsdata->data_begin +
(clustnum * itr->fsdata->clust_size);
} else {
- itr->cursect = 0;
+ itr->cursect = parent->fsdata->rootdir_sect;
}
itr->dent = NULL;
itr->remaining = 0;

fixed up locally

BR,
-R