modules: load modules from versioned /var/run dir
commitbd83c861c0628a64997b7bd95c3bcc2e916baf2e
authorChristian Ehrhardt <christian.ehrhardt@canonical.com>
Tue, 10 Mar 2020 14:58:06 +0000 (10 15:58 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 16 Mar 2020 22:02:22 +0000 (16 23:02 +0100)
tree1d0596f9e89538d3a6284f43556fd1fcbf43ef11
parent5b42bc5ce9ab4a3171819feea5042931817211fd
modules: load modules from versioned /var/run dir

On upgrades the old .so files usually are replaced. But on the other
hand since a qemu process represents a guest instance it is usually kept
around.

That makes late addition of dynamic features e.g. 'hot-attach of a ceph
disk' fail by trying to load a new version of e.f. block-rbd.so into an
old still running qemu binary.

This adds a fallback to also load modules from a versioned directory in the
temporary /var/run path. That way qemu is providing a way for packaging
to store modules of an upgraded qemu package as needed until the next reboot.

An example how that can then be used in packaging can be seen in:
https://git.launchpad.net/~paelzer/ubuntu/+source/qemu/log/?h=bug-1847361-miss-old-so-on-upgrade-UBUNTU

Fixes: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1847361
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200310145806.18335-2-christian.ehrhardt@canonical.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
configure
util/module.c