Delegations allow the client to cache various objects aggressively, however they can also be a source of scalability issues on the server if not returned when not it use. The following patchset allows the client to set a limit on the number of delegations that it holds. Once it hits that limit, it starts to return the delegations on close in order to avoid swamping the server with state. Trond Myklebust (5): NFSv4: nfs_inode_evict_delegation() should set NFS_DELEGATION_RETURNING NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is returned NFSv4: Try to return the delegation immediately when marked for return on close NFSv4: Add accounting for the number of active delegations held NFSv4: Limit the total number of cached delegations fs/nfs/delegation.c | 80 +++++++++++++++++++++++++++++++++++++-------- fs/nfs/delegation.h | 1 + fs/nfs/nfs4state.c | 1 + 3 files changed, 69 insertions(+), 13 deletions(-) -- 2.24.1