Commit 28cc5cd8 authored by Trond Myklebust's avatar Trond Myklebust Committed by Trond Myklebust
Browse files

NFS: Add a mount option to specify number of TCP connections to use



Allow the user to specify that the client should use multiple connections
to the server. For the moment, this functionality will be limited to
TCP and to NFSv4.x (x>0).

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent 612b41f8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ struct nfs_parsed_mount_data {
		char			*export_path;
		int			port;
		unsigned short		protocol;
		unsigned short		nconnect;
	} nfs_server;

	void			*lsm_opts;
+10 −0
Original line number Diff line number Diff line
@@ -77,6 +77,8 @@
#define NFS_DEFAULT_VERSION 2
#endif

#define NFS_MAX_CONNECTIONS 16

enum {
	/* Mount options that take no arguments */
	Opt_soft, Opt_softerr, Opt_hard,
@@ -108,6 +110,7 @@ enum {
	Opt_nfsvers,
	Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost,
	Opt_addr, Opt_mountaddr, Opt_clientaddr,
	Opt_nconnect,
	Opt_lookupcache,
	Opt_fscache_uniq,
	Opt_local_lock,
@@ -181,6 +184,8 @@ static const match_table_t nfs_mount_option_tokens = {
	{ Opt_mounthost, "mounthost=%s" },
	{ Opt_mountaddr, "mountaddr=%s" },

	{ Opt_nconnect, "nconnect=%s" },

	{ Opt_lookupcache, "lookupcache=%s" },
	{ Opt_fscache_uniq, "fsc=%s" },
	{ Opt_local_lock, "local_lock=%s" },
@@ -1549,6 +1554,11 @@ static int nfs_parse_mount_options(char *raw,
			if (mnt->mount_server.addrlen == 0)
				goto out_invalid_address;
			break;
		case Opt_nconnect:
			if (nfs_get_option_ul_bound(args, &option, 1, NFS_MAX_CONNECTIONS))
				goto out_invalid_value;
			mnt->nfs_server.nconnect = option;
			break;
		case Opt_lookupcache:
			string = match_strdup(args);
			if (string == NULL)