60 lines
2.2 KiB
Diff
60 lines
2.2 KiB
Diff
From 419b06f0ca7662c17a026ab0117ba9887dbd0477 Mon Sep 17 00:00:00 2001
|
|
From: Aman <aman1@microsoft.com>
|
|
Date: Thu, 6 Mar 2025 17:46:43 +0000
|
|
Subject: CIFS: Propagate min offload along with other parameters from primary
|
|
to secondary channels.
|
|
|
|
In a multichannel setup, it was observed that a few fields were not being
|
|
copied over to the secondary channels, which impacted performance in cases
|
|
where these options were relevant but not properly synchronized. To address
|
|
this, this patch introduces copying the following parameters from the
|
|
primary channel to the secondary channels:
|
|
|
|
- min_offload
|
|
- compression.requested
|
|
- dfs_conn
|
|
- ignore_signature
|
|
- leaf_fullpath
|
|
- noblockcnt
|
|
- retrans
|
|
- sign
|
|
|
|
By copying these parameters, we ensure consistency across channels and
|
|
prevent performance degradation due to missing or outdated settings.
|
|
|
|
Cc: stable@vger.kernel.org
|
|
Signed-off-by: Aman <aman1@microsoft.com>
|
|
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
|
|
Signed-off-by: Steve French <stfrench@microsoft.com>
|
|
---
|
|
fs/smb/client/connect.c | 1 +
|
|
fs/smb/client/sess.c | 7 +++++++
|
|
2 files changed, 8 insertions(+)
|
|
|
|
--- a/fs/smb/client/connect.c
|
|
+++ b/fs/smb/client/connect.c
|
|
@@ -1676,6 +1676,7 @@ cifs_get_tcp_session(struct smb3_fs_cont
|
|
/* Grab netns reference for this server. */
|
|
cifs_set_net_ns(tcp_ses, get_net(current->nsproxy->net_ns));
|
|
|
|
+ tcp_ses->sign = ctx->sign;
|
|
tcp_ses->conn_id = atomic_inc_return(&tcpSesNextId);
|
|
tcp_ses->noblockcnt = ctx->rootfs;
|
|
tcp_ses->noblocksnd = ctx->noblocksnd || ctx->rootfs;
|
|
--- a/fs/smb/client/sess.c
|
|
+++ b/fs/smb/client/sess.c
|
|
@@ -522,6 +522,13 @@ cifs_ses_add_channel(struct cifs_ses *se
|
|
ctx->sockopt_tcp_nodelay = ses->server->tcp_nodelay;
|
|
ctx->echo_interval = ses->server->echo_interval / HZ;
|
|
ctx->max_credits = ses->server->max_credits;
|
|
+ ctx->min_offload = ses->server->min_offload;
|
|
+ ctx->compress = ses->server->compression.requested;
|
|
+ ctx->dfs_conn = ses->server->dfs_conn;
|
|
+ ctx->ignore_signature = ses->server->ignore_signature;
|
|
+ ctx->leaf_fullpath = ses->server->leaf_fullpath;
|
|
+ ctx->rootfs = ses->server->noblockcnt;
|
|
+ ctx->retrans = ses->server->retrans;
|
|
|
|
/*
|
|
* This will be used for encoding/decoding user/domain/pw
|