NFS/pnfs: Separate NFSv3 DS and MDS traffic
If a NFSv3 server is being used as both a DS and as a regular NFSv3 server, we may want to keep the IO traffic on a separate TCP connection, since it will typically have very different timeout characteristics. This patch therefore sets up a flag to separate the two modes of operation for the nfs_client. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
Родитель
c6eb58435b
Коммит
52f98f1a2d
|
@ -312,6 +312,12 @@ again:
|
|||
/* Match nfsv4 minorversion */
|
||||
if (clp->cl_minorversion != data->minorversion)
|
||||
continue;
|
||||
|
||||
/* Match request for a dedicated DS */
|
||||
if (test_bit(NFS_CS_DS, &data->init_flags) !=
|
||||
test_bit(NFS_CS_DS, &clp->cl_flags))
|
||||
continue;
|
||||
|
||||
/* Match the full socket address */
|
||||
if (!rpc_cmp_addr_port(sap, clap))
|
||||
/* Match all xprt_switch full socket addresses */
|
||||
|
|
|
@ -109,6 +109,7 @@ struct nfs_client *nfs3_set_ds_client(struct nfs_server *mds_srv,
|
|||
__set_bit(NFS_CS_NORESVPORT, &cl_init.init_flags);
|
||||
|
||||
__set_bit(NFS_CS_NOPING, &cl_init.init_flags);
|
||||
__set_bit(NFS_CS_DS, &cl_init.init_flags);
|
||||
|
||||
/* Use the MDS nfs_client cl_ipaddr. */
|
||||
nfs_init_timeout_values(&ds_timeout, ds_proto, ds_timeo, ds_retrans);
|
||||
|
|
|
@ -46,6 +46,7 @@ struct nfs_client {
|
|||
#define NFS_CS_NO_RETRANS_TIMEOUT 4 /* - Disable retransmit timeouts */
|
||||
#define NFS_CS_TSM_POSSIBLE 5 /* - Maybe state migration */
|
||||
#define NFS_CS_NOPING 6 /* - don't ping on connect */
|
||||
#define NFS_CS_DS 7 /* - Server is a DS */
|
||||
struct sockaddr_storage cl_addr; /* server identifier */
|
||||
size_t cl_addrlen;
|
||||
char * cl_hostname; /* hostname of server */
|
||||
|
|
Загрузка…
Ссылка в новой задаче