diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-01 12:33:46 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-01 12:33:46 -0400 |
commit | 0cb7bf61b1e9f05027de58c80f9b46a714d24e35 (patch) | |
tree | 41fb55cf62d07b425122f9a8b96412c0d8eb99c5 /net/rxrpc/recvmsg.c | |
parent | aa877175e7a9982233ed8f10cb4bfddd78d82741 (diff) | |
parent | 3eab887a55424fc2c27553b7bfe32330df83f7b8 (diff) |
Merge branch 'linus' into smp/hotplug
Apply upstream changes to avoid conflicts with pending patches.
Diffstat (limited to 'net/rxrpc/recvmsg.c')
-rw-r--r-- | net/rxrpc/recvmsg.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/net/rxrpc/recvmsg.c b/net/rxrpc/recvmsg.c index a3fa2ed85d63..9ed66d533002 100644 --- a/net/rxrpc/recvmsg.c +++ b/net/rxrpc/recvmsg.c | |||
@@ -203,6 +203,9 @@ int rxrpc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, | |||
203 | } | 203 | } |
204 | 204 | ||
205 | /* we transferred the whole data packet */ | 205 | /* we transferred the whole data packet */ |
206 | if (!(flags & MSG_PEEK)) | ||
207 | rxrpc_kernel_data_consumed(call, skb); | ||
208 | |||
206 | if (sp->hdr.flags & RXRPC_LAST_PACKET) { | 209 | if (sp->hdr.flags & RXRPC_LAST_PACKET) { |
207 | _debug("last"); | 210 | _debug("last"); |
208 | if (rxrpc_conn_is_client(call->conn)) { | 211 | if (rxrpc_conn_is_client(call->conn)) { |
@@ -360,28 +363,6 @@ wait_error: | |||
360 | } | 363 | } |
361 | 364 | ||
362 | /** | 365 | /** |
363 | * rxrpc_kernel_data_delivered - Record delivery of data message | ||
364 | * @skb: Message holding data | ||
365 | * | ||
366 | * Record the delivery of a data message. This permits RxRPC to keep its | ||
367 | * tracking correct. The socket buffer will be deleted. | ||
368 | */ | ||
369 | void rxrpc_kernel_data_delivered(struct sk_buff *skb) | ||
370 | { | ||
371 | struct rxrpc_skb_priv *sp = rxrpc_skb(skb); | ||
372 | struct rxrpc_call *call = sp->call; | ||
373 | |||
374 | ASSERTCMP(sp->hdr.seq, >=, call->rx_data_recv); | ||
375 | ASSERTCMP(sp->hdr.seq, <=, call->rx_data_recv + 1); | ||
376 | call->rx_data_recv = sp->hdr.seq; | ||
377 | |||
378 | ASSERTCMP(sp->hdr.seq, >, call->rx_data_eaten); | ||
379 | rxrpc_free_skb(skb); | ||
380 | } | ||
381 | |||
382 | EXPORT_SYMBOL(rxrpc_kernel_data_delivered); | ||
383 | |||
384 | /** | ||
385 | * rxrpc_kernel_is_data_last - Determine if data message is last one | 366 | * rxrpc_kernel_is_data_last - Determine if data message is last one |
386 | * @skb: Message holding data | 367 | * @skb: Message holding data |
387 | * | 368 | * |