mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-04 19:34:00 +00:00
Previously we dealt with colliding dirent hash values by storing all the dirents that share a hash value in a big item with multiple dirents. This complicated the code and strongly encouraged resizing items as dirents come and go. Resizing items isn't very easy with our simple log segment item creation mechanism. Instead let's deal with collisions by allowing a dirent to be stored at multiple hash values. The code is much simpler. Lookup has to iterate over all possible hash values. We can track the greatest hash iteration stored in the directory inode to limit the overhead of negative lookups in small directories. Signed-off-by: Zach Brown <zab@versity.com>