Merge tag 'trace-v6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux...
[sfrench/cifs-2.6.git] / net / sunrpc / clnt.c
index cda0935a68c9db9462a663de3baad3ed786c0385..28f3749f6dc6cb7393d61c8fc07d9980a374f28b 100644 (file)
@@ -405,7 +405,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args,
        clnt->cl_maxproc  = version->nrprocs;
        clnt->cl_prog     = args->prognumber ? : program->number;
        clnt->cl_vers     = version->number;
-       clnt->cl_stats    = program->stats;
+       clnt->cl_stats    = args->stats ? : program->stats;
        clnt->cl_metrics  = rpc_alloc_iostats(clnt);
        rpc_init_pipe_dir_head(&clnt->cl_pipedir_objects);
        err = -ENOMEM;
@@ -691,6 +691,7 @@ struct rpc_clnt *rpc_clone_client(struct rpc_clnt *clnt)
                .version        = clnt->cl_vers,
                .authflavor     = clnt->cl_auth->au_flavor,
                .cred           = clnt->cl_cred,
+               .stats          = clnt->cl_stats,
        };
        return __rpc_clone_client(&args, clnt);
 }
@@ -713,6 +714,7 @@ rpc_clone_client_set_auth(struct rpc_clnt *clnt, rpc_authflavor_t flavor)
                .version        = clnt->cl_vers,
                .authflavor     = flavor,
                .cred           = clnt->cl_cred,
+               .stats          = clnt->cl_stats,
        };
        return __rpc_clone_client(&args, clnt);
 }
@@ -1068,6 +1070,7 @@ struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *old,
                .version        = vers,
                .authflavor     = old->cl_auth->au_flavor,
                .cred           = old->cl_cred,
+               .stats          = old->cl_stats,
        };
        struct rpc_clnt *clnt;
        int err;