Here's a respin of the delegation fixes that I sent yesterday. The main change is to move the remove_stid calls into the caller in the second patch instead of keeping it in nfs4_free_stid, per Christoph's suggestion. Unfortunately, that causes a pile of merge conflicts in the later patches, so I need to resend the whole set. I also include the patch that converts the num_delegations counter to an atomic_long_t, as I missed that in the earlier series. There is one more patch that fixes up handling of the cl_revoked list that comes later, but it can't easily be moved here as it depends on some locking changes that come later. Jeff Layton (6): nfsd: eliminate nfsd4_init_callback nfsd: Avoid taking state_lock while holding inode lock in nfsd_break_one_deleg nfsd: nfs4_alloc_init_lease should take a nfs4_file arg locks: add file_has_lease to prevent delegation break races nfsd: Protect the nfs4_file delegation fields using the fi_lock nfsd: Fix delegation revocation Trond Myklebust (4): nfsd: Ensure stateids remain unique until they are freed nfsd: Move the delegation reference counter into the struct nfs4_stid nfsd: Simplify stateid management nfsd: Convert delegation counter to an atomic_long_t type fs/locks.c | 26 +++++++ fs/nfsd/nfs4callback.c | 23 ++++-- fs/nfsd/nfs4state.c | 197 +++++++++++++++++++++++++++++++------------------ fs/nfsd/state.h | 7 +- include/linux/fs.h | 6 ++ 5 files changed, 179 insertions(+), 80 deletions(-) -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html