Hi Bruce- I've tested the latest version of your rq_lease_breaker patch plus my nfsd_dispatch() clean ups and haven't found any new issues. Changes since v1: - Pulled in latest version of rq_lease_breaker cleanup - Added patches to make NFSv2 error encoding similar to NFSv3 - Clarified nfsd_dispatch's new documenting comment - Renamed a variable --- Chuck Lever (10): lockd: Replace PROC() macro with open code NFSACL: Replace PROC() macro with open code NFSD: Encoder and decoder functions are always present NFSD: Clean up switch statement in nfsd_dispatch() NFSD: Clean up stale comments in nfsd_dispatch() NFSD: Clean up nfsd_dispatch() variables NFSD: Refactor nfsd_dispatch() error paths NFSD: Set *statp in success path NFSD: Fix .pc_release method for NFSv2 NFSD: Call NFSv2 encoders on error returns J. Bruce Fields (1): nfsd: rq_lease_breaker cleanup fs/lockd/svc4proc.c | 242 +++++++++++++++++++++++++++-------- fs/lockd/svcproc.c | 244 ++++++++++++++++++++++++++++-------- fs/nfsd/nfs2acl.c | 87 +++++++++---- fs/nfsd/nfs3acl.c | 50 +++++--- fs/nfsd/nfs3proc.c | 1 + fs/nfsd/nfs3xdr.c | 6 + fs/nfsd/nfs4proc.c | 1 + fs/nfsd/nfs4xdr.c | 6 + fs/nfsd/nfsproc.c | 173 ++++++++++++------------- fs/nfsd/nfssvc.c | 109 ++++++++-------- fs/nfsd/nfsxdr.c | 37 +++++- fs/nfsd/xdr.h | 11 +- fs/nfsd/xdr3.h | 1 + fs/nfsd/xdr4.h | 1 + include/uapi/linux/nfsacl.h | 2 + 15 files changed, 691 insertions(+), 280 deletions(-) -- Chuck Lever