diff options
Diffstat (limited to 'fs/nfsd/nfs4callback.c')
-rw-r--r-- | fs/nfsd/nfs4callback.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 094747a1227c..3ca141782145 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c | |||
@@ -384,6 +384,7 @@ static int do_probe_callback(void *data) | |||
384 | .version = nfs_cb_version[1]->number, | 384 | .version = nfs_cb_version[1]->number, |
385 | .authflavor = RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */ | 385 | .authflavor = RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */ |
386 | .flags = (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET), | 386 | .flags = (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET), |
387 | .client_name = clp->cl_principal, | ||
387 | }; | 388 | }; |
388 | struct rpc_message msg = { | 389 | struct rpc_message msg = { |
389 | .rpc_proc = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL], | 390 | .rpc_proc = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL], |
@@ -392,6 +393,11 @@ static int do_probe_callback(void *data) | |||
392 | struct rpc_clnt *client; | 393 | struct rpc_clnt *client; |
393 | int status; | 394 | int status; |
394 | 395 | ||
396 | if (!clp->cl_principal && (clp->cl_flavor >= RPC_AUTH_GSS_KRB5)) { | ||
397 | status = nfserr_cb_path_down; | ||
398 | goto out_err; | ||
399 | } | ||
400 | |||
395 | /* Initialize address */ | 401 | /* Initialize address */ |
396 | memset(&addr, 0, sizeof(addr)); | 402 | memset(&addr, 0, sizeof(addr)); |
397 | addr.sin_family = AF_INET; | 403 | addr.sin_family = AF_INET; |