SUNRPC mark the first transport
authorOlga Kornievskaia <kolga@netapp.com>
Thu, 24 Jun 2021 03:28:46 +0000 (23:28 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Thu, 8 Jul 2021 18:03:24 +0000 (14:03 -0400)
When an RPC client gets created it's first transport is special
and should be marked a main transport.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
include/linux/sunrpc/xprt.h
net/sunrpc/clnt.c

index 13a4eaf385cf9473e7341b683384025b38523ee1..692e5946c02927e230a78f2b2f4bcc27fe50a20e 100644 (file)
@@ -293,6 +293,7 @@ struct rpc_xprt {
        struct rcu_head         rcu;
        const struct xprt_class *xprt_class;
        struct rpc_sysfs_xprt   *xprt_sysfs;
+       bool                    main; /*mark if this is the 1st transport */
 };
 
 #if defined(CONFIG_SUNRPC_BACKCHANNEL)
index 9bf820bad84c088d70ed4b75e0f4ec54c444a1d5..408618765aa54a5bdcde3dbaa00310d29e2f2049 100644 (file)
@@ -412,6 +412,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args,
        }
 
        rpc_clnt_set_transport(clnt, xprt, timeout);
+       xprt->main = true;
        xprt_iter_init(&clnt->cl_xpi, xps);
        xprt_switch_put(xps);