[PATCH] knfsd: nfsd4: fix probe_callback
authorNeilBrown <neilb@cse.unsw.edu.au>
Fri, 24 Jun 2005 05:03:15 +0000 (22:03 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 24 Jun 2005 07:06:30 +0000 (00:06 -0700)
rpc_create_client was modified recently to do its own (synchronous) NULL ping
of the server.  We'd rather do that on our own, asynchronously, so that we
don't have to block the nfsd thread doing the probe, and so that setclientid
handling (hence, client mounts) can proceed normally whether the callback is
succesful or not.  (We can still function fine without the callback
channel--we just won't be able to give out delegations till it's verified to
work.)

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/nfsd/nfs4callback.c
net/sunrpc/sunrpc_syms.c

index 634465e9cfc6edf57fd819cffe9af0af944aa82d..38c3e1c47d83470467f6e93a37f0f632c6fc0b3b 100644 (file)
@@ -427,7 +427,7 @@ nfsd4_probe_callback(struct nfs4_client *clp)
         * XXX AUTH_UNIX only - need AUTH_GSS....
         */
        sprintf(hostname, "%u.%u.%u.%u", NIPQUAD(addr.sin_addr.s_addr));
-       clnt = rpc_create_client(xprt, hostname, program, 1, RPC_AUTH_UNIX);
+       clnt = rpc_new_client(xprt, hostname, program, 1, RPC_AUTH_UNIX);
        if (IS_ERR(clnt)) {
                dprintk("NFSD: couldn't create callback client\n");
                goto out_err;
index 32e8acbc60feae1c2cc509c2ba009c2b09e9de4f..62a0734952766b56ae48e1053dce92f91ecf278c 100644 (file)
@@ -41,6 +41,7 @@ EXPORT_SYMBOL(rpc_release_task);
 
 /* RPC client functions */
 EXPORT_SYMBOL(rpc_create_client);
+EXPORT_SYMBOL(rpc_new_client);
 EXPORT_SYMBOL(rpc_clone_client);
 EXPORT_SYMBOL(rpc_bind_new_program);
 EXPORT_SYMBOL(rpc_destroy_client);