linux/net/sunrpc
Chuck Lever 012da158f6 SUNRPC: Use soft connects for autobinding over TCP
Autobinding is handled by the rpciod process, not in user processes
that are generating regular RPC requests.  Thus autobinding is usually
not affected by signals targetting user processes, such as KILL or
timer expiration events.

In addition, an RPC request generated by a user process that has
RPC_TASK_SOFTCONN set and needs to perform an autobind will hang if
the remote rpcbind service is not available.

For rpcbind queries on connection-oriented transports, let's use the
new soft connect semantic to return control to the user's process
quickly, if the kernel's rpcbind client can't connect to the remote
rpcbind service.

Logic is introduced in call_bind_status() to handle connection errors
that occurred during an asynchronous rpcbind query.  The logic
abandons the rpcbind query if the RPC request has SOFTCONN set, and
retries after a few seconds in the normal case.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2009-12-03 15:58:56 -05:00
..
auth_gss sunrpc: reply AUTH_BADCRED to RPCSEC_GSS with unknown service 2009-08-25 17:39:43 -04:00
xprtrdma headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
addr.c SUNRPC: Display compressed (shorthand) IPv6 presentation addresses 2009-12-03 15:58:56 -05:00
auth_generic.c SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous 2009-09-15 20:49:33 -04:00
auth_null.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
auth_unix.c SUNRPC: Use GFP_NOFS when allocating credentials 2008-07-09 12:08:48 -04:00
auth.c SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous 2009-09-15 20:49:33 -04:00
backchannel_rqst.c nfs41: sunrpc: xprt_alloc_bc_request() should not use spin_lock_bh() 2009-06-20 14:55:39 -04:00
bc_svc.c nfs41: Backchannel callback service helper routines 2009-06-17 14:11:28 -07:00
cache.c sunrpc/cache: avoid variable over-loading in cache_defer_req 2009-09-18 17:01:12 -04:00
clnt.c SUNRPC: Use soft connects for autobinding over TCP 2009-12-03 15:58:56 -05:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-04-03 15:24:35 -07:00
Makefile SUNRPC: Provide functions for managing universal addresses 2009-08-09 15:09:34 -04:00
rpc_pipe.c sunrpc/rpc_pipe: fix kernel-doc notation 2009-09-23 14:36:38 -04:00
rpcb_clnt.c SUNRPC: Use soft connects for autobinding over TCP 2009-12-03 15:58:56 -05:00
sched.c nfsd41: sunrpc: move struct rpc_buffer def into sunrpc.h 2009-09-10 12:09:06 -04:00
socklib.c SUNRPC: temp var should match return type of xdr_skb_read_actor 2008-01-30 02:05:43 -05:00
stats.c nfs41: Rename rq_received to rq_reply_bytes_recvd 2009-06-17 14:11:40 -07:00
sunrpc_syms.c SUNRPC: Use a cached RPC client and transport for rpcbind upcalls 2009-12-03 15:58:56 -05:00
sunrpc.h nfsd41: sunrpc: Added rpc server-side backchannel handling 2009-09-11 15:04:16 -04:00
svc_xprt.c nfsd41: sunrpc: Added rpc server-side backchannel handling 2009-09-11 15:04:16 -04:00
svc.c Merge commit 'linux-pnfs/nfs41-for-2.6.31' into nfsv41-for-2.6.31 2009-06-17 17:59:58 -07:00
svcauth_unix.c Merge branch 'nfs-for-2.6.32' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 into for-2.6.32-incoming 2009-08-21 11:27:29 -04:00
svcauth.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
svcsock.c net: fix sk_forward_alloc corruption 2009-10-30 12:25:12 -07:00
sysctl.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
timer.c SUNRPC: Add documenting comments in net/sunrpc/timer.c 2009-08-09 15:09:47 -04:00
xdr.c sunrpc: ntoh -> be*_to_cpu 2009-08-14 13:12:52 -04:00
xprt.c nfsd41: sunrpc: Added rpc server-side backchannel handling 2009-09-11 15:04:16 -04:00
xprtsock.c SUNRPC: Allow RPCs to fail quickly if the server is unreachable 2009-12-03 15:58:56 -05:00