rxrpc: Record calls that need to be accepted
authorDavid Howells <dhowells@redhat.com>
Sat, 17 Sep 2016 09:49:11 +0000 (10:49 +0100)
committerDavid Howells <dhowells@redhat.com>
Sat, 17 Sep 2016 09:51:54 +0000 (10:51 +0100)
Record calls that need to be accepted using sk_acceptq_added() otherwise
the backlog counter goes negative because sk_acceptq_removed() is called.
This causes the preallocator to malfunction.

Calls that are preaccepted by AFS within the kernel aren't affected by
this.

Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/call_accept.c

index 26c293ef98eb53a9c5f69dae3c8e23327e0b6741..323b8da50163c3a1b71b1ba579acdc442271ced3 100644 (file)
@@ -369,6 +369,8 @@ found_service:
 
        if (rx->notify_new_call)
                rx->notify_new_call(&rx->sk, call, call->user_call_ID);
+       else
+               sk_acceptq_added(&rx->sk);
 
        spin_lock(&conn->state_lock);
        switch (conn->state) {