[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