From: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> The following patch series performs a number of cleanups on the readdir code. It also adds support for 1MB readdir RPC calls on-the-wire, and modifies the caching code to ensure that we cache the entire contents of that 1MB call (instead of discarding the data that doesn't fit into a single page). Trond Myklebust (12): NFS: Ensure contents of struct nfs_open_dir_context are consistent NFS: Clean up readdir struct nfs_cache_array NFS: Clean up nfs_readdir_page_filler() NFS: Clean up directory array handling NFS: Don't discard readdir results NFS: Remove unnecessary kmap in nfs_readdir_xdr_to_array() NFS: Replace kmap() with kmap_atomic() in nfs_readdir_search_array() NFS: Simplify struct nfs_cache_array_entry NFS: Support larger readdir buffers NFS: More readdir cleanups NFS: nfs_do_filldir() does not return a value NFS: Reduce readdir stack usage fs/nfs/client.c | 4 +- fs/nfs/dir.c | 555 ++++++++++++++++++++++++----------------- fs/nfs/internal.h | 6 - include/linux/nfs_fs.h | 1 - 4 files changed, 325 insertions(+), 241 deletions(-) -- 2.28.0