We recently wired up inhibitors in the network driver to prevent auto-shutdown of libvirtd/virtnetworkd when virtual networks are active. This is to prevent the repeated re-creation of firewall rules which happens on daemon startup. Unfortunately we forgot that an inhibition on libvirt daemon shutdown *also* gets unconditionally turned into an inhibition on OS shutdown :-( In fixing this I realized this is actually the second such mistakes, because a few years ago we made the virtsecretd daemon inhibit when ephemeral secrets are present, and that really has no justification for blocking system shutdown either. Daniel P. Berrangé (3): util: introduce object for holding a system inhibitor lock src: convert drivers over to new virInhibitor APIs rpc: remove logind support for virNetDaemon po/POTFILES | 1 + src/libvirt_private.syms | 7 + src/libxl/libxl_conf.h | 9 +- src/libxl/libxl_domain.c | 6 +- src/libxl/libxl_driver.c | 15 ++- src/lxc/lxc_conf.h | 9 +- src/lxc/lxc_driver.c | 13 +- src/lxc/lxc_process.c | 9 +- src/network/bridge_driver.c | 20 +-- src/network/bridge_driver_conf.h | 9 +- src/qemu/qemu_conf.h | 9 +- src/qemu/qemu_driver.c | 12 +- src/qemu/qemu_process.c | 9 +- src/rpc/virnetdaemon.c | 78 ----------- src/secret/secret_driver.c | 46 +++---- src/util/meson.build | 1 + src/util/virinhibitor.c | 214 +++++++++++++++++++++++++++++++ src/util/virinhibitor.h | 58 +++++++++ 18 files changed, 361 insertions(+), 164 deletions(-) create mode 100644 src/util/virinhibitor.c create mode 100644 src/util/virinhibitor.h -- 2.46.0