aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4callback.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfsd/nfs4callback.c')
-rw-r--r--fs/nfsd/nfs4callback.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 24e8d78f8dde..7e32bd394e86 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -1,6 +1,4 @@
1/* 1/*
2 * linux/fs/nfsd/nfs4callback.c
3 *
4 * Copyright (c) 2001 The Regents of the University of Michigan. 2 * Copyright (c) 2001 The Regents of the University of Michigan.
5 * All rights reserved. 3 * All rights reserved.
6 * 4 *
@@ -33,22 +31,10 @@
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 */ 32 */
35 33
36#include <linux/module.h>
37#include <linux/list.h>
38#include <linux/inet.h>
39#include <linux/errno.h>
40#include <linux/delay.h>
41#include <linux/sched.h>
42#include <linux/kthread.h>
43#include <linux/sunrpc/xdr.h>
44#include <linux/sunrpc/svc.h>
45#include <linux/sunrpc/clnt.h> 34#include <linux/sunrpc/clnt.h>
46#include <linux/sunrpc/svcsock.h> 35#include <linux/slab.h>
47#include <linux/nfsd/nfsd.h> 36#include "nfsd.h"
48#include <linux/nfsd/state.h> 37#include "state.h"
49#include <linux/sunrpc/sched.h>
50#include <linux/nfs4.h>
51#include <linux/sunrpc/xprtsock.h>
52 38
53#define NFSDDBG_FACILITY NFSDDBG_PROC 39#define NFSDDBG_FACILITY NFSDDBG_PROC
54 40
@@ -540,6 +526,8 @@ static struct rpc_cred *callback_cred;
540 526
541int set_callback_cred(void) 527int set_callback_cred(void)
542{ 528{
529 if (callback_cred)
530 return 0;
543 callback_cred = rpc_lookup_machine_cred(); 531 callback_cred = rpc_lookup_machine_cred();
544 if (!callback_cred) 532 if (!callback_cred)
545 return -ENOMEM; 533 return -ENOMEM;
@@ -557,7 +545,8 @@ void do_probe_callback(struct nfs4_client *clp)
557 }; 545 };
558 int status; 546 int status;
559 547
560 status = rpc_call_async(cb->cb_client, &msg, RPC_TASK_SOFT, 548 status = rpc_call_async(cb->cb_client, &msg,
549 RPC_TASK_SOFT | RPC_TASK_SOFTCONN,
561 &nfsd4_cb_probe_ops, (void *)clp); 550 &nfsd4_cb_probe_ops, (void *)clp);
562 if (status) { 551 if (status) {
563 warn_no_callback_path(clp, status); 552 warn_no_callback_path(clp, status);