[libvirt] [PATCH] Release VM lock before acquiring virDomainObjListPtr lock

Osier Yang jyang at redhat.com
Mon Feb 11 16:58:51 UTC 2013


On 2013年02月12日 00:46, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange"<berrange at redhat.com>
>
> When removing a VM from the virDomainObjListPtr, we must not
> be holding the VM lock while acquiring the list lock. Re-order
> code to ensure that we can release the VM lock early.
> ---
>   src/conf/domain_conf.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 5e16ddf..d92e54a 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -2115,11 +2115,10 @@ void virDomainObjListRemove(virDomainObjListPtr doms,
>   {
>       char uuidstr[VIR_UUID_STRING_BUFLEN];
>
> -    virObjectLock(doms);
>       virUUIDFormat(dom->def->uuid, uuidstr);
> -
>       virObjectUnlock(dom);
>
> +    virObjectLock(doms);
>       virHashRemoveEntry(doms->objs, uuidstr);
>       virObjectUnlock(doms);
>   }

ACK




More information about the libvir-list mailing list