mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Delay an orphan event if provider has still in-flight I/O requests.
This way GEOM classes can safely detach from provider when an orphan event is received. This fixes 'detach with active requests' panic for gstripe/gconcat under load. PR: kern/102766 Submitted by: mjacob OK'ed by: phk MFC after: 1 week
This commit is contained in:
parent
f8c9c51988
commit
d6b910d295
1 changed files with 4 additions and 1 deletions
|
|
@ -183,7 +183,10 @@ one_event(void)
|
|||
g_topology_lock();
|
||||
for (;;) {
|
||||
mtx_lock(&g_eventlock);
|
||||
pp = TAILQ_FIRST(&g_doorstep);
|
||||
TAILQ_FOREACH(pp, &g_doorstep, orphan) {
|
||||
if (pp->nstart == pp->nend)
|
||||
break;
|
||||
}
|
||||
if (pp != NULL) {
|
||||
G_VALID_PROVIDER(pp);
|
||||
TAILQ_REMOVE(&g_doorstep, pp, orphan);
|
||||
|
|
|
|||
Loading…
Reference in a new issue