mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-06 06:15:46 +00:00
qemu: add explicit flag to skip qemu caps invalidation
Currently if the binary path is NULL in the qemu capabilities object, cache invalidation is skipped. A future patch will ensure that the binary path is always non-NULL, so a way to explicitly skip invalidation is required. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
6337311358
commit
25db737471
@ -612,6 +612,7 @@ struct _virQEMUCaps {
|
|||||||
char *binary;
|
char *binary;
|
||||||
time_t ctime;
|
time_t ctime;
|
||||||
time_t libvirtCtime;
|
time_t libvirtCtime;
|
||||||
|
bool invalidation;
|
||||||
|
|
||||||
virBitmapPtr flags;
|
virBitmapPtr flags;
|
||||||
|
|
||||||
@ -1633,6 +1634,7 @@ virQEMUCapsNew(void)
|
|||||||
if (!(qemuCaps = virObjectNew(virQEMUCapsClass)))
|
if (!(qemuCaps = virObjectNew(virQEMUCapsClass)))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
qemuCaps->invalidation = true;
|
||||||
if (!(qemuCaps->flags = virBitmapNew(QEMU_CAPS_LAST)))
|
if (!(qemuCaps->flags = virBitmapNew(QEMU_CAPS_LAST)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@ -1647,6 +1649,14 @@ virQEMUCapsNew(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps,
|
||||||
|
bool enabled)
|
||||||
|
{
|
||||||
|
qemuCaps->invalidation = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virQEMUCapsHostCPUDataCopy(virQEMUCapsHostCPUDataPtr dst,
|
virQEMUCapsHostCPUDataCopy(virQEMUCapsHostCPUDataPtr dst,
|
||||||
virQEMUCapsHostCPUDataPtr src)
|
virQEMUCapsHostCPUDataPtr src)
|
||||||
@ -1746,6 +1756,7 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
|
|||||||
if (!ret)
|
if (!ret)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
ret->invalidation = qemuCaps->invalidation;
|
||||||
ret->usedQMP = qemuCaps->usedQMP;
|
ret->usedQMP = qemuCaps->usedQMP;
|
||||||
ret->kvmSupportsNesting = qemuCaps->kvmSupportsNesting;
|
ret->kvmSupportsNesting = qemuCaps->kvmSupportsNesting;
|
||||||
|
|
||||||
@ -4423,6 +4434,9 @@ virQEMUCapsIsValid(void *data,
|
|||||||
struct stat sb;
|
struct stat sb;
|
||||||
bool kvmSupportsNesting;
|
bool kvmSupportsNesting;
|
||||||
|
|
||||||
|
if (!qemuCaps->invalidation)
|
||||||
|
return true;
|
||||||
|
|
||||||
if (!qemuCaps->binary)
|
if (!qemuCaps->binary)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -36,6 +36,9 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch,
|
|||||||
unsigned int microcodeVersion,
|
unsigned int microcodeVersion,
|
||||||
const char *kernelVersion);
|
const char *kernelVersion);
|
||||||
|
|
||||||
|
void virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps,
|
||||||
|
bool enabled);
|
||||||
|
|
||||||
int virQEMUCapsLoadCache(virArch hostArch,
|
int virQEMUCapsLoadCache(virArch hostArch,
|
||||||
virQEMUCapsPtr qemuCaps,
|
virQEMUCapsPtr qemuCaps,
|
||||||
const char *filename);
|
const char *filename);
|
||||||
|
Loading…
Reference in New Issue
Block a user