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@xxxxxxxxxx> > > > > --- > > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list