diff --git a/src/security/security_stack.c b/src/security/security_stack.c index 82b79c326c9a87bcf28cc377a83349e4d9cd3efd..087aa81752d06751e88f8a76db0fbadcbcd13d91 100644 --- a/src/security/security_stack.c +++ b/src/security/security_stack.c @@ -129,6 +129,11 @@ virSecurityStackPreFork(virSecurityManagerPtr mgr) rc = -1; break; } + /* Undo the unbalanced locking left behind after recursion; if + * PostFork ever delegates to driver callbacks, we'd instead + * need to recurse to an internal method that does not regrab + * a lock. */ + virSecurityManagerPostFork(item->securityManager); } return rc;