Page MenuHomeFreeBSD

D55247.id171760.diff
No OneTemporary

D55247.id171760.diff

diff --git a/sys/rpc/svc_vc.c b/sys/rpc/svc_vc.c
--- a/sys/rpc/svc_vc.c
+++ b/sys/rpc/svc_vc.c
@@ -389,12 +389,15 @@
SOLISTEN_LOCK(head);
nbio = head->so_state & SS_NBIO;
head->so_state |= SS_NBIO;
- error = solisten_dequeue(head, &so, 0);
- head->so_state &= (nbio & ~SS_NBIO);
+ error = solisten_dequeue(head, &so, nbio ? SOCK_NONBLOCK : 0);
+ if (nbio == 0) {
+ SOLISTEN_LOCK(head);
+ head->so_state &= ~SS_NBIO;
+ SOLISTEN_UNLOCK(head);
+ }
if (error)
goto done;
- so->so_state |= nbio;
*sop = so;
/* connection has been removed from the listen queue */

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 7:14 PM (2 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28667322
Default Alt Text
D55247.id171760.diff (581 B)

Event Timeline