The following series is for continued discussion of the need for and implementation of stable directory cookies for shmemfs/tmpfs. Based on one of Andrew's review comments, I've split this one patch into a series to (hopefully) reduce its complexity and make it easier to analyze the changes. Although the patch(es) have been passing functional tests for several weeks, there have been some reports of performance regressions that we still need to get to the bottom of. We might consider a simpler lseek/readdir implementation, as using an xarray is effective but a bit of overkill. I'd like to avoid a linked list implementation as that is known to have significant performance impact past a dozen or so list entries. Changes since v1: - Break the patch up into a series Changes since RFC: - Destroy xarray in shmem_destroy_inode() instead of free_in_core_inode() - A few cosmetic updates --- Chuck Lever (5): shmem: Refactor shmem_symlink() shmem: Add dir_operations specific to tmpfs shmem: Add a per-directory xarray shmem: Add a shmem-specific dir_emit helper shmem: stable directory cookies include/linux/shmem_fs.h | 2 + mm/shmem.c | 213 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 201 insertions(+), 14 deletions(-) -- Chuck Lever