the gc is run from a task in the systq, so we dont need a flag to
serialise it. it is already serialised.
ok?
Index: uipc_usrreq.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_usrreq.c,v
retrieving revision 1.95
diff -u -p -r1.95 uipc_usrreq.c
--- uipc_usrreq.c 5 Dec 2015 10:11:53 -0000 1.95
+++ uipc_usrreq.c 25 Feb 2016 11:38:16 -0000
@@ -882,7 +882,7 @@ fail:
return (error);
}
-int unp_defer, unp_gcing;
+int unp_defer;
void
unp_gc(void *arg __unused)
@@ -893,10 +893,6 @@ unp_gc(void *arg __unused)
struct unpcb *unp;
int nunref, i;
- if (unp_gcing)
- return;
- unp_gcing = 1;
-
/* close any fds on the deferred list */
while ((defer = SLIST_FIRST(&unp_deferred)) != NULL) {
SLIST_REMOVE_HEAD(&unp_deferred, ud_link);
@@ -991,7 +987,6 @@ unp_gc(void *arg __unused)
unp_discard);
}
}
- unp_gcing = 0;
}
void