On Thu, Jan 23, 2014 at 02:46:42PM -0500, Stefan Berger wrote: > On 01/23/2014 07:37 AM, Daniel P. Berrange wrote: > > > > >@@ -3477,7 +3482,7 @@ int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, > > > > initialized = true; > > > >- if (virMutexInitRecursive(&updateMutex) < 0) > >+ if (virRWLockInit(&updateLock) < 0) > > return -1; > > > > Obviously it was a recursive lock before. Now > pthread_rwlock_wrlock() must not be called twice by the same thread. > I am fine with the conversion below per se. The functions below are > quite low-level now (close to virsh) that they are not called > recursively. So from this perspective for this patch: The write locks aren't ever acquired recursively, since they're only held in top level functions. The read locks are still allowed to be recursive so we're safe in that respect. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list