SUNRPC: If there is no reply expected, bail early from call_decode
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 28 Aug 2018 20:27:31 +0000 (16:27 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Sun, 30 Sep 2018 19:35:13 +0000 (15:35 -0400)
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
net/sunrpc/clnt.c

index bc9d020bf71fb7c4fdb92dcc4e001a8eadbf5d53..4f1ec8013332aaedfa79b4d1575cac7324ed21e9 100644 (file)
@@ -2260,6 +2260,11 @@ call_decode(struct rpc_task *task)
 
        dprint_status(task);
 
+       if (!decode) {
+               task->tk_action = rpc_exit_task;
+               return;
+       }
+
        if (task->tk_flags & RPC_CALL_MAJORSEEN) {
                if (clnt->cl_chatty) {
                        printk(KERN_NOTICE "%s: server %s OK\n",
@@ -2297,13 +2302,11 @@ call_decode(struct rpc_task *task)
                        goto out_retry;
                return;
        }
-
        task->tk_action = rpc_exit_task;
 
-       if (decode) {
-               task->tk_status = rpcauth_unwrap_resp(task, decode, req, p,
-                                                     task->tk_msg.rpc_resp);
-       }
+       task->tk_status = rpcauth_unwrap_resp(task, decode, req, p,
+                                             task->tk_msg.rpc_resp);
+
        dprintk("RPC: %5u call_decode result %d\n", task->tk_pid,
                        task->tk_status);
        return;