SUNRPC: Avoid spurious wake-up during UDP connect processing
Chuck Lever authored

To clear out old state, the UDP connect workers unconditionally invoke
xs_close() before proceeding with a new connect.  Nowadays this causes
a spurious wake-up of the task waiting for the connect to complete.

This is a little racey, but usually harmless.  The waiting task
immediately retries the connect via a call_bind/call_connect sequence,
which usually finds the transport already in the connected state
because the connect worker has finished in the background.

To avoid a spurious wake-up, factor the xs_close() logic that resets
the underlying socket into a helper, and have the UDP connect workers
call that helper instead of xs_close().
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
fe315e76
Name Last commit Last update
..
802 net: fix tokenring license
8021q vlan: Fix vlan-in-vlan crashes.
9p 9p: fix endian issues [attempt 3]
appletalk appletalk: convert aarp to net_device_ops
atm netdevice: Kill netdev->priv
ax25 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
bluetooth bluetooth: driver API update
bridge bridge: Fix LRO crash with tun
can can: fix slowpath issue in hrtimer callback function
core vlan: Fix vlan-in-vlan crashes.
dcb DCB: fix kfree(skb)
dccp dccp ccid-3: Fix RFC reference
decnet net: Make static
dsa dsa: convert to net_device_ops (v2)
econet netns: Use net_eq() to compare net-namespaces for optimization.
ethernet eth: Declare an optimized compare_ether_addr_64bits() function
ipv4 tcp: Like icmp use register_pernet_subsys
ipv6 IPv6: add "disable" module parameter support to ipv6.ko
ipx net: '&' redux
irda tty: Fix an ircomm warning and note another bug
iucv s390: remove s390_root_dev_*()
key af_key: initialize xfrm encap_oa
lapb [LAPB] net/lapb/lapb_iface.c: use LIST_HEAD instead of LIST_HEAD_INIT
llc net: remove redundant argument comments
mac80211 mac80211: restrict to AP in outgoing interface heuristic
netfilter
netlabel
netlink
netrom
packet
phonet
rfkill
rose
rxrpc
sched
sctp
sunrpc
tipc
unix
wanrouter
wimax
wireless
x25
xfrm
Kconfig
Makefile
TUNABLE
compat.c
nonet.c
socket.c
sysctl_net.c