diff options
| author | Rick Macklem <rmacklem@FreeBSD.org> | 2009-06-04 14:13:06 +0000 |
|---|---|---|
| committer | Rick Macklem <rmacklem@FreeBSD.org> | 2009-06-04 14:13:06 +0000 |
| commit | a4fa5e6dd9017ed6d7550099bb0a0a12801d487e (patch) | |
| tree | cc0d48c0c71f2161d578f4ba91009671a5e3a128 /sys/rpc/svc.c | |
| parent | c421791e77500b5a4883bbee54d6750ab828bed4 (diff) | |
Notes
Diffstat (limited to 'sys/rpc/svc.c')
| -rw-r--r-- | sys/rpc/svc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/rpc/svc.c b/sys/rpc/svc.c index 8af9e80f0198..fbddafbfecbb 100644 --- a/sys/rpc/svc.c +++ b/sys/rpc/svc.c @@ -175,12 +175,12 @@ svcpool_destroy(SVCPOOL *pool) mtx_lock(&pool->sp_lock); } - mtx_destroy(&pool->sp_lock); - TAILQ_FOREACH_SAFE(xprt, &cleanup, xp_link, nxprt) { SVC_RELEASE(xprt); } + mtx_destroy(&pool->sp_lock); + if (pool->sp_rcache) replay_freecache(pool->sp_rcache); @@ -353,15 +353,16 @@ xprt_active(SVCXPRT *xprt) { SVCPOOL *pool = xprt->xp_pool; + mtx_lock(&pool->sp_lock); + if (!xprt->xp_registered) { /* * Race with xprt_unregister - we lose. */ + mtx_unlock(&pool->sp_lock); return; } - mtx_lock(&pool->sp_lock); - if (!xprt->xp_active) { TAILQ_INSERT_TAIL(&pool->sp_active, xprt, xp_alink); xprt->xp_active = TRUE; |
