Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15bc77f9 authored by Aurelien Aptel's avatar Aurelien Aptel Committed by Steve French
Browse files

cifs: move large array from stack to heap



This addresses some compile warnings that you can
see depending on configuration settings.

Signed-off-by: default avatarAurelien Aptel <aaptel@suse.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent ee13919c
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -128,24 +128,31 @@ static int __cifs_reconnect_tcon(const struct nls_table *nlsc,
	int rc;
	struct dfs_cache_tgt_list tl;
	struct dfs_cache_tgt_iterator *it = NULL;
	char tree[MAX_TREE_SIZE + 1];
	char *tree;
	const char *tcp_host;
	size_t tcp_host_len;
	const char *dfs_host;
	size_t dfs_host_len;

	tree = kzalloc(MAX_TREE_SIZE, GFP_KERNEL);
	if (!tree)
		return -ENOMEM;

	if (tcon->ipc) {
		snprintf(tree, sizeof(tree), "\\\\%s\\IPC$",
		snprintf(tree, MAX_TREE_SIZE, "\\\\%s\\IPC$",
			 tcon->ses->server->hostname);
		return CIFSTCon(0, tcon->ses, tree, tcon, nlsc);
		rc = CIFSTCon(0, tcon->ses, tree, tcon, nlsc);
		goto out;
	}

	if (!tcon->dfs_path)
		return CIFSTCon(0, tcon->ses, tcon->treeName, tcon, nlsc);
	if (!tcon->dfs_path) {
		rc = CIFSTCon(0, tcon->ses, tcon->treeName, tcon, nlsc);
		goto out;
	}

	rc = dfs_cache_noreq_find(tcon->dfs_path + 1, NULL, &tl);
	if (rc)
		return rc;
		goto out;

	extract_unc_hostname(tcon->ses->server->hostname, &tcp_host,
			     &tcp_host_len);
@@ -165,7 +172,7 @@ static int __cifs_reconnect_tcon(const struct nls_table *nlsc,
			continue;
		}

		snprintf(tree, sizeof(tree), "\\%s", tgt);
		snprintf(tree, MAX_TREE_SIZE, "\\%s", tgt);

		rc = CIFSTCon(0, tcon->ses, tree, tcon, nlsc);
		if (!rc)
@@ -182,6 +189,8 @@ static int __cifs_reconnect_tcon(const struct nls_table *nlsc,
			rc = -ENOENT;
	}
	dfs_cache_free_tgts(&tl);
out:
	kfree(tree);
	return rc;
}
#else
+16 −7
Original line number Diff line number Diff line
@@ -162,24 +162,31 @@ static int __smb2_reconnect(const struct nls_table *nlsc,
	int rc;
	struct dfs_cache_tgt_list tl;
	struct dfs_cache_tgt_iterator *it = NULL;
	char tree[MAX_TREE_SIZE + 1];
	char *tree;
	const char *tcp_host;
	size_t tcp_host_len;
	const char *dfs_host;
	size_t dfs_host_len;

	tree = kzalloc(MAX_TREE_SIZE, GFP_KERNEL);
	if (!tree)
		return -ENOMEM;

	if (tcon->ipc) {
		snprintf(tree, sizeof(tree), "\\\\%s\\IPC$",
		snprintf(tree, MAX_TREE_SIZE, "\\\\%s\\IPC$",
			 tcon->ses->server->hostname);
		return SMB2_tcon(0, tcon->ses, tree, tcon, nlsc);
		rc = SMB2_tcon(0, tcon->ses, tree, tcon, nlsc);
		goto out;
	}

	if (!tcon->dfs_path)
		return SMB2_tcon(0, tcon->ses, tcon->treeName, tcon, nlsc);
	if (!tcon->dfs_path) {
		rc = SMB2_tcon(0, tcon->ses, tcon->treeName, tcon, nlsc);
		goto out;
	}

	rc = dfs_cache_noreq_find(tcon->dfs_path + 1, NULL, &tl);
	if (rc)
		return rc;
		goto out;

	extract_unc_hostname(tcon->ses->server->hostname, &tcp_host,
			     &tcp_host_len);
@@ -199,7 +206,7 @@ static int __smb2_reconnect(const struct nls_table *nlsc,
			continue;
		}

		snprintf(tree, sizeof(tree), "\\%s", tgt);
		snprintf(tree, MAX_TREE_SIZE, "\\%s", tgt);

		rc = SMB2_tcon(0, tcon->ses, tree, tcon, nlsc);
		if (!rc)
@@ -216,6 +223,8 @@ static int __smb2_reconnect(const struct nls_table *nlsc,
			rc = -ENOENT;
	}
	dfs_cache_free_tgts(&tl);
out:
	kfree(tree);
	return rc;
}
#else