SUNRPC: Add a function to display the name of an RPC procedure
authorChuck Lever <chuck.lever@oracle.com>
Wed, 21 May 2008 21:09:12 +0000 (17:09 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 9 Jul 2008 16:08:53 +0000 (12:08 -0400)
Improve debugging messages in call_start() and call_verify() by having
them show the RPC procedure name instead of the procedure number.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/clnt.c

index 1af4f161cda862d3e8006c438feddfb885fb3e4c..68ea6dddcf1ecc8a52517a302c1cf413834530ac 100644 (file)
@@ -690,6 +690,21 @@ rpc_restart_call(struct rpc_task *task)
 }
 EXPORT_SYMBOL_GPL(rpc_restart_call);
 
+#ifdef RPC_DEBUG
+static const char *rpc_proc_name(const struct rpc_task *task)
+{
+       const struct rpc_procinfo *proc = task->tk_msg.rpc_proc;
+
+       if (proc) {
+               if (proc->p_name)
+                       return proc->p_name;
+               else
+                       return "NULL";
+       } else
+               return "no proc";
+}
+#endif
+
 /*
  * 0.  Initial state
  *
@@ -701,9 +716,9 @@ call_start(struct rpc_task *task)
 {
        struct rpc_clnt *clnt = task->tk_client;
 
-       dprintk("RPC: %5u call_start %s%d proc %d (%s)\n", task->tk_pid,
+       dprintk("RPC: %5u call_start %s%d proc %s (%s)\n", task->tk_pid,
                        clnt->cl_protname, clnt->cl_vers,
-                       task->tk_msg.rpc_proc->p_proc,
+                       rpc_proc_name(task),
                        (RPC_IS_ASYNC(task) ? "async" : "sync"));
 
        /* Increment call count */
@@ -1432,10 +1447,10 @@ call_verify(struct rpc_task *task)
                error = -EPROTONOSUPPORT;
                goto out_err;
        case RPC_PROC_UNAVAIL:
-               dprintk("RPC: %5u %s: proc %p unsupported by program %u, "
+               dprintk("RPC: %5u %s: proc %s unsupported by program %u, "
                                "version %u on server %s\n",
                                task->tk_pid, __func__,
-                               task->tk_msg.rpc_proc,
+                               rpc_proc_name(task),
                                task->tk_client->cl_prog,
                                task->tk_client->cl_vers,
                                task->tk_client->cl_server);