linux-stable/fs/nfsd
J.Bruce Fields e0bb89ef03 [PATCH] knfsd: nfsd: don't drop silently on upcall deferral
To avoid tying up server threads when nfsd makes an upcall (to mountd, to get
export options, to idmapd, for nfsv4 name<->id mapping, etc.), we temporarily
"drop" the request and save enough information so that we can revisit it
later.

Certain failures during the deferral process can cause us to really drop the
request and never revisit it.

This is often less than ideal, and is unacceptable in the NFSv4 case--rfc 3530
forbids the server from dropping a request without also closing the
connection.

As a first step, we modify the deferral code to return -ETIMEDOUT (which is
translated to nfserr_jukebox in the v3 and v4 cases, and remains a drop in the
v2 case).

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-13 09:05:54 -08:00
..
auth.c [PATCH] knfsd: nfsd: nfsd_setuser doesn't really need to modify rqstp->rq_cred. 2006-04-11 06:18:52 -07:00
export.c [PATCH] knfsd: nfsd: don't drop silently on upcall deferral 2006-12-13 09:05:54 -08:00
lockd.c [PATCH] lockd endianness annotations 2006-12-13 09:05:52 -08:00
Makefile [PATCH] knfsd: nfsd4: reboot hash 2005-06-24 00:06:33 -07:00
nfs2acl.c [PATCH] NFS2: Calculate 'w' a bit later in nfsaclsvc_encode_getaclres() 2006-12-08 08:29:01 -08:00
nfs3acl.c [PATCH] NFS3: Calculate 'w' a bit later in nfs3svc_encode_getaclres() 2006-12-08 08:29:02 -08:00
nfs3proc.c [PATCH] nfsd4: fix open-create permissions 2006-11-08 18:29:23 -08:00
nfs3xdr.c [PATCH] remove NFSD_OPTIMIZE_SPACE 2006-12-07 08:39:45 -08:00
nfs4acl.c [PATCH] knfsd: nfsd4: acls: fix handling of zero-length acls 2006-10-04 07:55:20 -07:00
nfs4callback.c [PATCH] nfsd: misc endianness annotations 2006-10-20 10:26:43 -07:00
nfs4idmap.c [PATCH] fs: Conversions from kmalloc+memset to k(z|c)alloc 2006-09-27 08:26:10 -07:00
nfs4proc.c [PATCH] knfsd: nfsd4: clarify units of COMPOUND_SLACK_SPACE 2006-12-13 09:05:53 -08:00
nfs4recover.c [PATCH] lockdep: annotate nfsd4 recover code 2006-12-08 08:29:01 -08:00
nfs4state.c [PATCH] knfsd: nfsd4: remove a dprink from nfsd4_lock 2006-12-13 09:05:53 -08:00
nfs4xdr.c [PATCH] knfsd: nfsd4: handling more nfsd_cross_mnt errors in nfsd4 readdir 2006-12-13 09:05:54 -08:00
nfscache.c [PATCH] nfsd: replace kmalloc+memset with kcalloc + simplify NULL check 2006-12-08 08:29:02 -08:00
nfsctl.c [PATCH] nfsd: change uses of f_{dentry, vfsmnt} to use f_path 2006-12-08 08:28:42 -08:00
nfsfh.c [PATCH] knfsd: nfsd: don't drop silently on upcall deferral 2006-12-13 09:05:54 -08:00
nfsproc.c [PATCH] nfsd: NFSv{2,3} trivial endianness annotations for error values 2006-10-20 10:26:42 -07:00
nfssvc.c [PATCH] nfsd: misc endianness annotations 2006-10-20 10:26:43 -07:00
nfsxdr.c [PATCH] remove NFSD_OPTIMIZE_SPACE 2006-12-07 08:39:45 -08:00
stats.c [PATCH] knfsd: nfsd4: add per-operation server stats 2006-07-10 13:24:27 -07:00
vfs.c [PATCH] knfsd: nfsd: don't drop silently on upcall deferral 2006-12-13 09:05:54 -08:00