x86/hyper-v: Fix definition of HV_MAX_FLUSH_REP_COUNT
[linux-2.6-microblaze.git] / net / sunrpc / clnt.c
index 24cbddc..71d9599 100644 (file)
@@ -627,6 +627,7 @@ static struct rpc_clnt *__rpc_clone_client(struct rpc_create_args *args,
        new->cl_noretranstimeo = clnt->cl_noretranstimeo;
        new->cl_discrtry = clnt->cl_discrtry;
        new->cl_chatty = clnt->cl_chatty;
+       new->cl_principal = clnt->cl_principal;
        return new;
 
 out_err:
@@ -1029,7 +1030,7 @@ rpc_task_set_rpc_message(struct rpc_task *task, const struct rpc_message *msg)
                task->tk_msg.rpc_argp = msg->rpc_argp;
                task->tk_msg.rpc_resp = msg->rpc_resp;
                if (msg->rpc_cred != NULL)
-                       task->tk_msg.rpc_cred = get_rpccred(msg->rpc_cred);
+                       task->tk_msg.rpc_cred = get_cred(msg->rpc_cred);
        }
 }
 
@@ -2521,9 +2522,8 @@ static int rpc_ping(struct rpc_clnt *clnt)
                .rpc_proc = &rpcproc_null,
        };
        int err;
-       msg.rpc_cred = authnull_ops.lookup_cred(NULL, NULL, 0);
-       err = rpc_call_sync(clnt, &msg, RPC_TASK_SOFT | RPC_TASK_SOFTCONN);
-       put_rpccred(msg.rpc_cred);
+       err = rpc_call_sync(clnt, &msg, RPC_TASK_SOFT | RPC_TASK_SOFTCONN |
+                           RPC_TASK_NULLCREDS);
        return err;
 }
 
@@ -2534,15 +2534,15 @@ struct rpc_task *rpc_call_null_helper(struct rpc_clnt *clnt,
 {
        struct rpc_message msg = {
                .rpc_proc = &rpcproc_null,
-               .rpc_cred = cred,
        };
        struct rpc_task_setup task_setup_data = {
                .rpc_client = clnt,
                .rpc_xprt = xprt,
                .rpc_message = &msg,
+               .rpc_op_cred = cred,
                .callback_ops = (ops != NULL) ? ops : &rpc_default_ops,
                .callback_data = data,
-               .flags = flags,
+               .flags = flags | RPC_TASK_NULLCREDS,
        };
 
        return rpc_run_task(&task_setup_data);
@@ -2593,7 +2593,6 @@ int rpc_clnt_test_and_add_xprt(struct rpc_clnt *clnt,
                void *dummy)
 {
        struct rpc_cb_add_xprt_calldata *data;
-       struct rpc_cred *cred;
        struct rpc_task *task;
 
        data = kmalloc(sizeof(*data), GFP_NOFS);
@@ -2602,11 +2601,9 @@ int rpc_clnt_test_and_add_xprt(struct rpc_clnt *clnt,
        data->xps = xprt_switch_get(xps);
        data->xprt = xprt_get(xprt);
 
-       cred = authnull_ops.lookup_cred(NULL, NULL, 0);
-       task = rpc_call_null_helper(clnt, xprt, cred,
-                       RPC_TASK_SOFT|RPC_TASK_SOFTCONN|RPC_TASK_ASYNC,
+       task = rpc_call_null_helper(clnt, xprt, NULL,
+                       RPC_TASK_SOFT|RPC_TASK_SOFTCONN|RPC_TASK_ASYNC|RPC_TASK_NULLCREDS,
                        &rpc_cb_add_xprt_call_ops, data);
-       put_rpccred(cred);
        if (IS_ERR(task))
                return PTR_ERR(task);
        rpc_put_task(task);
@@ -2637,7 +2634,6 @@ int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *clnt,
                                     struct rpc_xprt *xprt,
                                     void *data)
 {
-       struct rpc_cred *cred;
        struct rpc_task *task;
        struct rpc_add_xprt_test *xtest = (struct rpc_add_xprt_test *)data;
        int status = -EADDRINUSE;
@@ -2649,11 +2645,9 @@ int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *clnt,
                goto out_err;
 
        /* Test the connection */
-       cred = authnull_ops.lookup_cred(NULL, NULL, 0);
-       task = rpc_call_null_helper(clnt, xprt, cred,
-                                   RPC_TASK_SOFT | RPC_TASK_SOFTCONN,
+       task = rpc_call_null_helper(clnt, xprt, NULL,
+                                   RPC_TASK_SOFT | RPC_TASK_SOFTCONN | RPC_TASK_NULLCREDS,
                                    NULL, NULL);
-       put_rpccred(cred);
        if (IS_ERR(task)) {
                status = PTR_ERR(task);
                goto out_err;
@@ -2667,6 +2661,9 @@ int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *clnt,
        /* rpc_xprt_switch and rpc_xprt are deferrenced by add_xprt_test() */
        xtest->add_xprt_test(clnt, xprt, xtest->data);
 
+       xprt_put(xprt);
+       xprt_switch_put(xps);
+
        /* so that rpc_clnt_add_xprt does not call rpc_xprt_switch_add_xprt */
        return 1;
 out_err: