mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
[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>
This commit is contained in:
parent
021d3a7245
commit
e0bb89ef03
6 changed files with 22 additions and 11 deletions
|
@ -435,6 +435,7 @@ svcauth_unix_set_client(struct svc_rqst *rqstp)
|
|||
default:
|
||||
BUG();
|
||||
case -EAGAIN:
|
||||
case -ETIMEDOUT:
|
||||
return SVC_DROP;
|
||||
case -ENOENT:
|
||||
return SVC_DENIED;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue