diff options
author | 2021-10-25 05:44:10 +0000 | |
---|---|---|
committer | 2022-01-07 20:09:23 -0600 | |
commit | bda487ac4bebf871255cc6f23e16f702cea0ca7c (patch) | |
tree | c9002fe22f2e9294726411f82e012835ffef95ac /tools/perf/util/scripting-engines/trace-event-python.c | |
parent | cifs: maintain a state machine for tcp/smb/tcon sessions (diff) | |
download | wireguard-linux-bda487ac4bebf871255cc6f23e16f702cea0ca7c.tar.xz wireguard-linux-bda487ac4bebf871255cc6f23e16f702cea0ca7c.zip |
cifs: avoid race during socket reconnect between send and recv
When a TCP connection gets reestablished by the sender in cifs_reconnect,
There is a chance for race condition with demultiplex thread waiting in
cifs_readv_from_socket on the old socket. It will now return -ECONNRESET.
This condition is handled by comparing socket pointer before and after
sock_recvmsg. If the socket pointer has changed, we should not call
cifs_reconnect again, but instead retry with new socket.
Also fixed another bug in my prev mchan commits.
We should always reestablish session (even if binding) on a channel
that needs reconnection.
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
0 files changed, 0 insertions, 0 deletions