diff options
-rw-r--r-- | net/rxrpc/peer_event.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/rxrpc/peer_event.c b/net/rxrpc/peer_event.c index bc05af89fc38..6e84d878053c 100644 --- a/net/rxrpc/peer_event.c +++ b/net/rxrpc/peer_event.c | |||
@@ -157,6 +157,11 @@ void rxrpc_error_report(struct sock *sk) | |||
157 | 157 | ||
158 | _enter("%p{%d}", sk, local->debug_id); | 158 | _enter("%p{%d}", sk, local->debug_id); |
159 | 159 | ||
160 | /* Clear the outstanding error value on the socket so that it doesn't | ||
161 | * cause kernel_sendmsg() to return it later. | ||
162 | */ | ||
163 | sock_error(sk); | ||
164 | |||
160 | skb = sock_dequeue_err_skb(sk); | 165 | skb = sock_dequeue_err_skb(sk); |
161 | if (!skb) { | 166 | if (!skb) { |
162 | _leave("UDP socket errqueue empty"); | 167 | _leave("UDP socket errqueue empty"); |