[libvirt] [PATCH] nwfilter: Add missing driver lock in qemu driver
Stefan Berger
stefanb at linux.vnet.ibm.com
Mon May 17 10:31:05 UTC 2010
On Sun, 2010-05-16 at 10:08 +0100, Daniel P. Berrange wrote:
> On Fri, May 14, 2010 at 01:39:28PM -0400, Stefan Berger wrote:
> > This adds a missing driver lock in the qemu driver to protect
> > the list of domains.
> >
> > Signed-off-by: Stefan Berger <stefanb at us.ibm.com>
> >
> > ---
> > src/qemu/qemu_driver.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > Index: libvirt-acl/src/qemu/qemu_driver.c
> > ===================================================================
> > --- libvirt-acl.orig/src/qemu/qemu_driver.c
> > +++ libvirt-acl/src/qemu/qemu_driver.c
> > @@ -11869,11 +11869,15 @@ static virStateDriver qemuStateDriver =
> > };
> >
> > static int
> > -qemudVMFilterRebuild(virConnectPtr conn,
> > +qemudVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED,
> > virHashIterator iter, void *data)
> > {
> > - (void)conn;
> > + struct qemud_driver *driver = qemu_driver;
> > +
> > + qemuDriverLock(driver);
> > virHashForEach(qemu_driver->domains.objs, iter, data);
> > + qemuDriverUnlock(driver);
> > +
> > return 0;
> > }
>
> ACK, traced back the code for 'iter' and that's already correctly locking
> the elements when it accesses them, so this is only bit broken.
The above lock protects the hash table from manipulation while
traversing it.
Stefan
More information about the libvir-list
mailing list