diff options
Diffstat (limited to 'net/sunrpc/xprtsock.c')
| -rw-r--r-- | net/sunrpc/xprtsock.c | 18 | 
1 files changed, 6 insertions, 12 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index fcdd0fca408e..e976007f4fd0 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -822,17 +822,9 @@ static int xs_stream_nospace(struct rpc_rqst *req, bool vm_wait)  	return ret;  } -static int -xs_stream_prepare_request(struct rpc_rqst *req) +static int xs_stream_prepare_request(struct rpc_rqst *req, struct xdr_buf *buf)  { -	gfp_t gfp = rpc_task_gfp_mask(); -	int ret; - -	ret = xdr_alloc_bvec(&req->rq_snd_buf, gfp); -	if (ret < 0) -		return ret; -	xdr_free_bvec(&req->rq_rcv_buf); -	return xdr_alloc_bvec(&req->rq_rcv_buf, gfp); +	return xdr_alloc_bvec(buf, rpc_task_gfp_mask());  }  /* @@ -1378,7 +1370,7 @@ static void xs_udp_data_receive_workfn(struct work_struct *work)  }  /** - * xs_data_ready - "data ready" callback for UDP sockets + * xs_data_ready - "data ready" callback for sockets   * @sk: socket with data to read   *   */ @@ -1386,11 +1378,13 @@ static void xs_data_ready(struct sock *sk)  {  	struct rpc_xprt *xprt; -	dprintk("RPC:       xs_data_ready...\n");  	xprt = xprt_from_sock(sk);  	if (xprt != NULL) {  		struct sock_xprt *transport = container_of(xprt,  				struct sock_xprt, xprt); + +		trace_xs_data_ready(xprt); +  		transport->old_data_ready(sk);  		/* Any data means we had a useful conversation, so  		 * then we don't need to delay the next reconnect  |