diff options
author | Ronnie Sahlberg <lsahlber@redhat.com> | 2019-07-06 06:52:46 +1000 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2019-07-07 22:37:43 -0500 |
commit | f2caf901c1b7ce65f9e6aef4217e3241039db768 (patch) | |
tree | c5f38dc1911eb2286937c8137bbec59a08962b32 /fs/cifs/smb2ops.c | |
parent | 3e2725796cbdfe4efc7eb7b27cacaeac2ddad1a5 (diff) | |
download | linux-f2caf901c1b7ce65f9e6aef4217e3241039db768.tar.bz2 |
cifs: Fix a race condition with cifs_echo_request
There is a race condition with how we send (or supress and don't send)
smb echos that will cause the client to incorrectly think the
server is unresponsive and thus needs to be reconnected.
Summary of the race condition:
1) Daisy chaining scheduling creates a gap.
2) If traffic comes unfortunate shortly after
the last echo, the planned echo is suppressed.
3) Due to the gap, the next echo transmission is delayed
until after the timeout, which is set hard to twice
the echo interval.
This is fixed by changing the timeouts from 2 to three times the echo interval.
Detailed description of the bug: https://lutz.donnerhacke.de/eng/Blog/Groundhog-Day-with-SMB-remount
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/smb2ops.c')
0 files changed, 0 insertions, 0 deletions