|
@@ -1068,18 +1068,18 @@ static void xs_udp_data_read_skb(struct rpc_xprt *xprt,
|
|
|
|
|
|
/* Suck it into the iovec, verify checksum if not done by hw. */
|
|
/* Suck it into the iovec, verify checksum if not done by hw. */
|
|
if (csum_partial_copy_to_xdr(&rovr->rq_private_buf, skb)) {
|
|
if (csum_partial_copy_to_xdr(&rovr->rq_private_buf, skb)) {
|
|
- __UDPX_INC_STATS(sk, UDP_MIB_INERRORS);
|
|
|
|
spin_lock(&xprt->recv_lock);
|
|
spin_lock(&xprt->recv_lock);
|
|
|
|
+ __UDPX_INC_STATS(sk, UDP_MIB_INERRORS);
|
|
goto out_unpin;
|
|
goto out_unpin;
|
|
}
|
|
}
|
|
|
|
|
|
- __UDPX_INC_STATS(sk, UDP_MIB_INDATAGRAMS);
|
|
|
|
|
|
|
|
spin_lock_bh(&xprt->transport_lock);
|
|
spin_lock_bh(&xprt->transport_lock);
|
|
xprt_adjust_cwnd(xprt, task, copied);
|
|
xprt_adjust_cwnd(xprt, task, copied);
|
|
spin_unlock_bh(&xprt->transport_lock);
|
|
spin_unlock_bh(&xprt->transport_lock);
|
|
spin_lock(&xprt->recv_lock);
|
|
spin_lock(&xprt->recv_lock);
|
|
xprt_complete_rqst(task, copied);
|
|
xprt_complete_rqst(task, copied);
|
|
|
|
+ __UDPX_INC_STATS(sk, UDP_MIB_INDATAGRAMS);
|
|
out_unpin:
|
|
out_unpin:
|
|
xprt_unpin_rqst(rovr);
|
|
xprt_unpin_rqst(rovr);
|
|
out_unlock:
|
|
out_unlock:
|