Reconsidering exportable UBIFS

Richard Weinberger richard at nod.at
Wed May 11 07:10:53 PDT 2016


Am 09.05.2016 um 00:18 schrieb NeilBrown:
>> The biggest problem I see is that UBIFS does not really support telldir()
>> and seekdir().
>> Directory offsets in UBIFS are plain hash values, so telldir()/seekdir() won't
>> correctly work if UBIFS faces hash collisions.
>> Currently UBIFS implements a hack which stores the UBIFS dent object into
>> file->private_data such that consecutive readdir()s are guaranteed to work.
>> A comment on UBIFS's readdir states:
>>  * This means that UBIFS cannot support NFS which requires full
>>  * 'seekdir()'/'telldir()' support.
>>
>> Is this still true? Maybe we can have NFS even if it is not perfect in
>> terms of performance.
> 
> How big are your hashes?
> ext3 messed up their readdir/telldir design too so they don't have
> guaranteed unique keys.
> When using 32bit hashes you can definitely get problems with
> collisions.  I have not heard of problems with 64bit hashes.
> 
> I may have the details slightly wrong, but as I recall non-uniqueness of
> cookies only causes a problem when the last cookie returned in a READDIR
> reply matches the first cookie returned in reply to the next readdir.
> So non-uniqueness is only a problem when it aligns badly.

UBIFS is using 32bit hashes, r5 hash from reiserfs. ;-\

Thanks,
//richard



More information about the linux-mtd mailing list