diff --git a/src/flow-worker.c b/src/flow-worker.c index fbad567142..b84ec58db0 100644 --- a/src/flow-worker.c +++ b/src/flow-worker.c @@ -509,7 +509,7 @@ static TmEcode FlowWorker(ThreadVars *tv, Packet *p, void *data) if (likely(p->flow != NULL)) { DEBUG_ASSERT_FLOW_LOCKED(p->flow); if (FlowUpdate(tv, fw, p) == TM_ECODE_DONE) { - return TM_ECODE_OK; + goto housekeeping; } } /* Flow is now LOCKED */ @@ -584,6 +584,8 @@ static TmEcode FlowWorker(ThreadVars *tv, Packet *p, void *data) FLOWLOCK_UNLOCK(f); } +housekeeping: + /* take injected flows and process them */ FlowWorkerProcessInjectedFlows(tv, fw, p, detect_thread);