diff options
Diffstat (limited to 'fs/nfsd/nfs4callback.c')
-rw-r--r-- | fs/nfsd/nfs4callback.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index c6eed2a3b093..4bc22c763de7 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c | |||
@@ -525,6 +525,8 @@ static struct rpc_cred *callback_cred; | |||
525 | 525 | ||
526 | int set_callback_cred(void) | 526 | int set_callback_cred(void) |
527 | { | 527 | { |
528 | if (callback_cred) | ||
529 | return 0; | ||
528 | callback_cred = rpc_lookup_machine_cred(); | 530 | callback_cred = rpc_lookup_machine_cred(); |
529 | if (!callback_cred) | 531 | if (!callback_cred) |
530 | return -ENOMEM; | 532 | return -ENOMEM; |
@@ -542,7 +544,8 @@ void do_probe_callback(struct nfs4_client *clp) | |||
542 | }; | 544 | }; |
543 | int status; | 545 | int status; |
544 | 546 | ||
545 | status = rpc_call_async(cb->cb_client, &msg, RPC_TASK_SOFT, | 547 | status = rpc_call_async(cb->cb_client, &msg, |
548 | RPC_TASK_SOFT | RPC_TASK_SOFTCONN, | ||
546 | &nfsd4_cb_probe_ops, (void *)clp); | 549 | &nfsd4_cb_probe_ops, (void *)clp); |
547 | if (status) { | 550 | if (status) { |
548 | warn_no_callback_path(clp, status); | 551 | warn_no_callback_path(clp, status); |