diff options
| author | Enzo Matsumiya <ematsumiya@suse.de> | 2026-10-08 15:26:09 -0300 |
|---|---|---|
| committer | Paulo Alcantara <pc@manguebit.org> | 2026-10-13 00:52:19 -0300 |
| commit | 80f49404968d680f07f33f57ed9a9a1ddd2f2418 (patch) | |
| tree | 18a0287f7398db17206643be5c9c53d38a5d0e22 /tools/perf/scripts/python | |
| parent | ff47652a4b66c067c765a7ad464d930b5a9367cc (diff) | |
| download | linux-80f49404968d680f07f33f57ed9a9a1ddd2f2418.tar.gz linux-80f49404968d680f07f33f57ed9a9a1ddd2f2418.zip | |
smb: client: fast fail sends if need to reconnect
smb_send_kvec() keeps retrying when server needs to reconnect, which
makes no sense as cifs_reconnect() will never run in parallel (because
both need server mutex).
IOW, retrying will never succeed, but only delay reconnects further.
Bail out early from smb_send_kvec() when need to reconnect.
Also shutdown socket queues when CifsNeedReconnect is first detected,
so any sends/receives fails immediately (and don't wait for socket to
timeout).
Add TCP_Server_Info::need_sock_shutdown to ensure socket is shutdown
only once -- even though socket/TCP API will prevent multiple shutdowns,
we need to prevent, from cifs side, concurrent tasks from accidentally
shutting down the socket again in case cifs_reconnect() is successful.
kernel_sock_shutdown() will be called from whichever task detects it
first; cifsd (cifs_tcp_ses_needs_reconnect()), or sending tasks,
through cifs_call_async() or compound_send_recv().
Signed-off-by: Enzo Matsumiya <ematsumiya@suse.de>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
