Commit 0c2b5f7c authored by Steve French's avatar Steve French
Browse files

cifs: fix rsize/wsize to be negotiated values



Also make sure these are displayed in /proc/mounts

Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
Reviewed-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
parent 09a8361e
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -621,11 +621,8 @@ cifs_show_options(struct seq_file *s, struct dentry *root)
			   from_kgid_munged(&init_user_ns,
					    cifs_sb->ctx->backupgid));

	if (cifs_sb->ctx->got_rsize)
	seq_printf(s, ",rsize=%u", cifs_sb->ctx->rsize);
	if (cifs_sb->ctx->got_wsize)
	seq_printf(s, ",wsize=%u", cifs_sb->ctx->wsize);
	if (cifs_sb->ctx->got_bsize)
	seq_printf(s, ",bsize=%u", cifs_sb->ctx->bsize);
	if (tcon->ses->server->min_offload)
		seq_printf(s, ",esize=%u", tcon->ses->server->min_offload);
+6 −2
Original line number Diff line number Diff line
@@ -2859,10 +2859,14 @@ static int mount_get_conns(struct smb3_fs_context *ctx, struct cifs_sb_info *cif

	/*
	 * Clamp the rsize/wsize mount arguments if they are too big for the server
	 * and set the rsize/wsize to the negotiated values if not passed in by
	 * the user on mount
	 */
	if (cifs_sb->ctx->wsize > server->ops->negotiate_wsize(tcon, ctx))
	if ((cifs_sb->ctx->wsize == 0) ||
	    (cifs_sb->ctx->wsize > server->ops->negotiate_wsize(tcon, ctx)))
		cifs_sb->ctx->wsize = server->ops->negotiate_wsize(tcon, ctx);
	if (cifs_sb->ctx->rsize > server->ops->negotiate_rsize(tcon, ctx))
	if ((cifs_sb->ctx->rsize == 0) ||
	    (cifs_sb->ctx->rsize > server->ops->negotiate_rsize(tcon, ctx)))
		cifs_sb->ctx->rsize = server->ops->negotiate_rsize(tcon, ctx);

	return 0;