
Currently to deal with auto-shutdown libvirtd must periodically poll all stateful drivers. Thus sucks because it requires acquiring both the driver lock and locks on every single virtual machine. Instead pass in a "inhibit" callback to virStateInitialize which drivers can invoke whenever they want to inhibit shutdown due to existance of active VMs.
+nwfilterDriverStartup(bool privileged ATTRIBUTE_UNUSED, + virStateInhibitCallback callback ATTRIBUTE_UNUSED, + void *opaque ATTRIBUTE_UNUSED) {
Here, you aren't remembering the callback...
Yes, this is technically a semantic change, I could have pulled into a separate patch.
Basically there is no compelling reason for the nwfilter driver to inhibit shutdown. Active NWfilters are all associated with active domains, which will already be inhibiting shutdown.
True.
+storageDriverStartup(bool privileged, + virStateInhibitCallback callback ATTRIBUTE_UNUSED, + void *opaque ATTRIBUTE_UNUSED)
Another case of ignoring the callback...
Again this is because, IMHO, there is no compelling reason for active storage pools to inhibit libvirtd shutdown. Indeed inhibiting it makes auto-shutdown pretty much useless, since you'll almost always have an active directory based storage pool.
Probably worth mentioning these intentional changes in the commit log, but you've convinced me that the code is sane. ACK.