Commit 522aa3b5 authored by Ronnie Sahlberg's avatar Ronnie Sahlberg Committed by Steve French
Browse files

cifs: move [brw]size from cifs_sb to cifs_sb->ctx

parent c741cba2
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -62,9 +62,6 @@ struct cifs_sb_info {
	struct tcon_link *master_tlink;
	struct nls_table *local_nls;
	struct smb3_fs_context *ctx;
	unsigned int bsize;
	unsigned int rsize;
	unsigned int wsize;
	atomic_t active;
	unsigned int mnt_cifs_flags;
	struct delayed_work prune_tlinks;
+7 −4
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ cifs_read_super(struct super_block *sb)
	if (rc)
		goto out_no_root;
	/* tune readahead according to rsize */
	sb->s_bdi->ra_pages = cifs_sb->rsize / PAGE_SIZE;
	sb->s_bdi->ra_pages = cifs_sb->ctx->rsize / PAGE_SIZE;

	sb->s_blocksize = CIFS_MAX_MSGSIZE;
	sb->s_blocksize_bits = 14;	/* default 2**14 = CIFS_MAX_MSGSIZE */
@@ -615,9 +615,12 @@ cifs_show_options(struct seq_file *s, struct dentry *root)
			   from_kgid_munged(&init_user_ns,
					    cifs_sb->ctx->backupgid));

	seq_printf(s, ",rsize=%u", cifs_sb->rsize);
	seq_printf(s, ",wsize=%u", cifs_sb->wsize);
	seq_printf(s, ",bsize=%u", cifs_sb->bsize);
	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);
	seq_printf(s, ",echo_interval=%lu",
+9 −12
Original line number Diff line number Diff line
@@ -2248,10 +2248,10 @@ compare_mount_options(struct super_block *sb, struct cifs_mnt_data *mnt_data)
	 * We want to share sb only if we don't specify an r/wsize or
	 * specified r/wsize is greater than or equal to existing one.
	 */
	if (new->wsize && new->wsize < old->wsize)
	if (new->ctx->wsize && new->ctx->wsize < old->ctx->wsize)
		return 0;

	if (new->rsize && new->rsize < old->rsize)
	if (new->ctx->rsize && new->ctx->rsize < old->ctx->rsize)
		return 0;

	if (!uid_eq(old->ctx->linux_uid, new->ctx->linux_uid) ||
@@ -2714,14 +2714,6 @@ int cifs_setup_cifs_sb(struct smb3_fs_context *ctx,
	spin_lock_init(&cifs_sb->tlink_tree_lock);
	cifs_sb->tlink_tree = RB_ROOT;

	cifs_sb->bsize = ctx->bsize;
	/*
	 * Temporarily set r/wsize for matching superblock. If we end up using
	 * new sb then client will later negotiate it downward if needed.
	 */
	cifs_sb->rsize = ctx->rsize;
	cifs_sb->wsize = ctx->wsize;

	cifs_dbg(FYI, "file mode: %04ho  dir mode: %04ho\n",
		 cifs_sb->ctx->file_mode, cifs_sb->ctx->dir_mode);

@@ -2925,8 +2917,13 @@ static int mount_get_conns(struct smb3_fs_context *ctx, struct cifs_sb_info *cif
		}
	}

	cifs_sb->wsize = server->ops->negotiate_wsize(tcon, ctx);
	cifs_sb->rsize = server->ops->negotiate_rsize(tcon, ctx);
	/*
	 * Clamp the rsize/wsize mount arguments if they are too big for the server
	 */
	if (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))
		cifs_sb->ctx->rsize = server->ops->negotiate_rsize(tcon, ctx);

	return 0;
}
+6 −6
Original line number Diff line number Diff line
@@ -2336,7 +2336,7 @@ static int cifs_writepages(struct address_space *mapping,
	 * If wsize is smaller than the page cache size, default to writing
	 * one page at a time via cifs_writepage
	 */
	if (cifs_sb->wsize < PAGE_SIZE)
	if (cifs_sb->ctx->wsize < PAGE_SIZE)
		return generic_writepages(mapping, wbc);

	xid = get_xid();
@@ -2369,7 +2369,7 @@ retry:
		if (rc)
			get_file_rc = rc;

		rc = server->ops->wait_mtu_credits(server, cifs_sb->wsize,
		rc = server->ops->wait_mtu_credits(server, cifs_sb->ctx->wsize,
						   &wsize, credits);
		if (rc != 0) {
			done = true;
@@ -2911,7 +2911,7 @@ cifs_write_from_iter(loff_t offset, size_t len, struct iov_iter *from,
				break;
		}

		rc = server->ops->wait_mtu_credits(server, cifs_sb->wsize,
		rc = server->ops->wait_mtu_credits(server, cifs_sb->ctx->wsize,
						   &wsize, credits);
		if (rc)
			break;
@@ -3642,7 +3642,7 @@ cifs_send_async_read(loff_t offset, size_t len, struct cifsFileInfo *open_file,
				break;
		}

		rc = server->ops->wait_mtu_credits(server, cifs_sb->rsize,
		rc = server->ops->wait_mtu_credits(server, cifs_sb->ctx->rsize,
						   &rsize, credits);
		if (rc)
			break;
@@ -4028,7 +4028,7 @@ cifs_read(struct file *file, char *read_data, size_t read_size, loff_t *offset)
	cifs_sb = CIFS_FILE_SB(file);

	/* FIXME: set up handlers for larger reads and/or convert to async */
	rsize = min_t(unsigned int, cifs_sb->rsize, CIFSMaxBufSize);
	rsize = min_t(unsigned int, cifs_sb->ctx->rsize, CIFSMaxBufSize);

	if (file->private_data == NULL) {
		rc = -EBADF;
@@ -4413,7 +4413,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
				break;
		}

		rc = server->ops->wait_mtu_credits(server, cifs_sb->rsize,
		rc = server->ops->wait_mtu_credits(server, cifs_sb->ctx->rsize,
						   &rsize, credits);
		if (rc)
			break;
+3 −0
Original line number Diff line number Diff line
@@ -784,12 +784,15 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
			goto cifs_parse_mount_err;
		}
		ctx->bsize = result.uint_32;
		ctx->got_bsize = true;
		break;
	case Opt_rsize:
		ctx->rsize = result.uint_32;
		ctx->got_rsize = true;
		break;
	case Opt_wsize:
		ctx->wsize = result.uint_32;
		ctx->got_wsize = true;
		break;
	case Opt_actimeo:
		ctx->actimeo = HZ * result.uint_32;
Loading