]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] knfsd: nfsd: don't drop silently on upcall deferral
authorJ.Bruce Fields <bfields@fieldses.org>
Wed, 13 Dec 2006 08:35:25 +0000 (00:35 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Wed, 13 Dec 2006 17:05:54 +0000 (09:05 -0800)
commitb482630b1d6785e29223fa1c04638ea471a75e68
tree6016032b160db2cf697eea19cd0f12ace946c7cc
parentede3656e5358a383115e1842203a0cd4f3fe3e4e
[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>
fs/nfsd/export.c
fs/nfsd/nfsfh.c
fs/nfsd/vfs.c
net/sunrpc/auth_gss/svcauth_gss.c
net/sunrpc/cache.c
net/sunrpc/svcauth_unix.c