Implement client side caching for NFSv4.2 extended attributes. The cache is a per-inode hashtable, with name/value entries. There is one special entry for the listxattr cache. NFS inodes have a pointer to a cache structure. The cache structure is allocated on demand, freed when the cache is invalidated. Memory shrinkers keep the size in check. Large entries (> PAGE_SIZE) are collected by a separate shrinker, and freed more aggressively than others.
Showing the changes to include/uapi/linux (1 of 9 files). Show all
Unified · Split
| @@ -56,6 +56,7 @@ · 55 unmodified lines | |||
| 56 | #define NFSDBG_PNFS 0x1000 | 56 | #define NFSDBG_PNFS 0x1000 |
| 57 | #define NFSDBG_PNFS_LD 0x2000 | 57 | #define NFSDBG_PNFS_LD 0x2000 |
| 58 | #define NFSDBG_STATE 0x4000 | 58 | #define NFSDBG_STATE 0x4000 |
| 59 | #define NFSDBG_XATTRCACHE 0x8000 | ||
| 59 | #define NFSDBG_ALL 0xFFFF | 60 | #define NFSDBG_ALL 0xFFFF |
| 60 | 61 | ||
| 61 | 62 | ||