SUNRPC: Eliminate side effects from rpc_malloc
[linux-drm-fsl-dcu.git] / net / sunrpc / xprt.c
index ee6ffa01dfb18f0bc2e78ea8e8b86d7470c7b8bb..81fe830da8aa639186c2cd2e45e87cd568191cda 100644 (file)
@@ -735,16 +735,6 @@ void xprt_transmit(struct rpc_task *task)
                        xprt_reset_majortimeo(req);
                        /* Turn off autodisconnect */
                        del_singleshot_timer_sync(&xprt->timer);
-               } else {
-                       /* If all request bytes have been sent,
-                        * then we must be retransmitting this one */
-                       if (!req->rq_bytes_sent) {
-                               if (task->tk_client->cl_discrtry) {
-                                       xprt_disconnect(xprt);
-                                       task->tk_status = -ENOTCONN;
-                                       return;
-                               }
-                       }
                }
        } else if (!req->rq_bytes_sent)
                return;
@@ -833,7 +823,6 @@ static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt)
        req->rq_task    = task;
        req->rq_xprt    = xprt;
        req->rq_buffer  = NULL;
-       req->rq_bufsize = 0;
        req->rq_xid     = xprt_alloc_xid(xprt);
        req->rq_release_snd_buf = NULL;
        xprt_reset_majortimeo(req);
@@ -865,7 +854,7 @@ void xprt_release(struct rpc_task *task)
                mod_timer(&xprt->timer,
                                xprt->last_used + xprt->idle_timeout);
        spin_unlock_bh(&xprt->transport_lock);
-       xprt->ops->buf_free(task);
+       xprt->ops->buf_free(req->rq_buffer);
        task->tk_rqstp = NULL;
        if (req->rq_release_snd_buf)
                req->rq_release_snd_buf(req);