Commit 1821e90b authored by Aman's avatar Aman Committed by Steve French
Browse files

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: default avatarAman <aman1@microsoft.com>
Reviewed-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent b26df4f5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1676,6 +1676,7 @@ cifs_get_tcp_session(struct smb3_fs_context *ctx,
	/* 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;
+7 −0
Original line number Diff line number Diff line
@@ -522,6 +522,13 @@ cifs_ses_add_channel(struct cifs_ses *ses,
	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