linux/net/sunrpc
Neil Brown b48fa6b991 sunrpc: centralise most calls to svc_xprt_received
svc_xprt_received must be called when ->xpo_recvfrom has finished
receiving a message, so that the XPT_BUSY flag will be cleared and
if necessary, requeued for further work.

This call is currently made in each ->xpo_recvfrom function, often
from multiple different points.  In each case it is the earliest point
on a particular path where it is known that the protection provided by
XPT_BUSY is no longer needed.

However there are (still) some error paths which do not call
svc_xprt_received, and requiring each ->xpo_recvfrom to make the call
does not encourage robustness.

So: move the svc_xprt_received call to be made just after the
call to ->xpo_recvfrom(), and move it of the various ->xpo_recvfrom
methods.

This means that it may not be called at the earliest possible instant,
but this is unlikely to be a measurable performance issue.

Note that there are still other calls to svc_xprt_received as it is
also needed when an xprt is newly created.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2010-05-03 08:33:00 -04:00
..
auth_gss sunrpc: parse and return errors reported by gssd 2010-02-10 08:30:50 -05:00
xprtrdma sunrpc: centralise most calls to svc_xprt_received 2010-05-03 08:33:00 -04:00
addr.c SUNRPC: Don't display zero scope IDs 2010-02-10 08:30:53 -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 Merge branch 'nfs-for-2.6.33' 2009-12-13 13:56:27 -05: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: fix module refcnt leak in a failure path 2010-03-24 10:40:46 -04:00
clnt.c SUNRPC: soft connect semantics for UDP 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 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-03-04 08:15:33 -08:00
rpcb_clnt.c SUNRPC: Use soft connects for autobinding over TCP 2009-12-03 15:58:56 -05:00
sched.c nfs: enforce FIFO ordering of operations trying to acquire slot 2009-12-15 13:55:18 -05: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 sunrpc: centralise most calls to svc_xprt_received 2010-05-03 08:33:00 -04:00
svc.c nodemask.h: remove macro any_online_node 2010-03-06 11:26:31 -08:00
svcauth_unix.c svcrpc: treat uid's as unsigned 2010-03-02 15:49:21 -05:00
svcauth.c net: Move && and || to end of previous line 2009-11-29 16:55:45 -08:00
svcsock.c sunrpc: centralise most calls to svc_xprt_received 2010-05-03 08:33:00 -04:00
sysctl.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08: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 SUNRPC: Ensure that we honour autoclose before attempting to reconnect 2009-12-03 08:10:17 -05:00
xprtsock.c SUNRPC: Handle EINVAL error returns from the TCP connect operation 2010-03-02 13:06:21 -05:00