SUNRPC: Run rpc timeout functions as callbacks instead of in softirqs
Trond Myklebust authored

An audit of the current RPC timeout functions shows that they don't really
ever need to run in the softirq context. As long as the softirq is
able to signal that the wakeup is due to a timeout (which it can do by
setting task->tk_status to -ETIMEDOUT) then the callback functions can just
run as standard task->tk_callback functions (in the rpciod/process
context).

The only possible border-line case would be xprt_timer() for the case of
UDP, when the callback is used to reduce the size of the transport
congestion window. In testing, however, the effect of moving that update
to a callback would appear to be minor.
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
5d00837b
Name Last commit Last update
..
802 [TR] net/802/tr.c: sysctl_tr_rif_timeout static
8021q [NET]: Restore sanity wrt. print_mac().
9p net/9p/trans_virtio.c: kmalloc() enough memory
appletalk [APPLETALK]: Annotations to clear sparse warnings
atm [NETNS]: Add namespace parameter to ip_route_output_key.
ax25 [AX25] ax25_out: check skb for NULL in ax25_kick()
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
bridge [NETFILTER]: fix ebtable targets return
can [CAN]: Minor clean-ups
core Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
dccp [SOCK] proto: Add hashinfo member to struct proto
decnet [DECNET] ROUTE: remove unecessary alignment
econet [NET]: Convert init_timer into setup_timer
ethernet [ETH]: Combine format_addr() with print_mac().
ieee80211 ieee80211: beacon->capability is little-endian
ipv4 [IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.
ipv6 [IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.
ipx [NET]: Simple ctl_table to ctl_path conversions.
irda [IrDA]: LMP discovery timer not started by default
iucv [AF_IUCV]: defensive programming of iucv_callback_txdone
key [AF_KEY]: Fix bug in spdadd
lapb [LAPB] net/lapb/lapb_iface.c: use LIST_HEAD instead of LIST_HEAD_INIT
llc [NET]: Simple ctl_table to ctl_path conversions.
mac80211 mac80211: Fix initial hardware configuration
netfilter [NETFILTER]: xt_iprange: fix subtraction-based comparison
netlabel
netlink
netrom
packet
rfkill
rose
rxrpc
sched
sctp
sunrpc
tipc
unix
wanrouter
wireless
x25
xfrm
Kconfig
Makefile
TUNABLE
compat.c
nonet.c
socket.c
sysctl_net.c