In an effort to address slab fragmentation issues reported a few months ago, I've replaced the use of xarrays for the directory offset map in "simple" file systems (including tmpfs). This patch set passes functional testing and is ready for code review. But I don't have the facilities to re-run the performance tests that identified the regression. We expect the performance of this implementation will need additional improvement. Thanks to Liam Howlett for helping me get this working. --- Chuck Lever (6): libfs: Rename "so_ctx" libfs: Define a minimum directory offset libfs: Add simple_offset_empty() maple_tree: Add mtree_alloc_cyclic() libfs: Convert simple directory offsets to use a Maple Tree libfs: Re-arrange locking in offset_iterate_dir() Liam R. Howlett (1): test_maple_tree: testing the cyclic allocation fs/libfs.c | 125 +++++++++++++++++++++++-------------- include/linux/fs.h | 6 +- include/linux/maple_tree.h | 7 +++ lib/maple_tree.c | 93 +++++++++++++++++++++++++++ lib/test_maple_tree.c | 44 +++++++++++++ mm/shmem.c | 4 +- 6 files changed, 227 insertions(+), 52 deletions(-) -- Chuck Lever