a463d6f106
I keep wanting this to use a linked-list, since I think there's potentially some interesting use with lower layers cheaply prepending attributes to attribute lists from upper layers. (terminating at the user-provided custom attributes, for example). But this never really works out. In this case, the amount of in-place editing in B-trees just makes maintaining the next pointers just not worth the extra code cost. And it's likely measurements will show what was found in the original version of v2: the RAM/code cost of next pointers outweighs any benefits potentially gained from prepending attributes for free. In practice, we can't really just prepend custom attributes, as this would expose the internal lfs_attr_t struct and tag encoding to the public API. And you can always have in-device-only tags that are handled specially to enable a limited form of this attribute list extension. This is how custom attributes are currently implemented.