mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 22:55:23 +00:00
qemu: domain: Replace qemuDomainFilePathIsHostCDROM with virFileIsCDROM
Use the new helper when checking that the VM needs to be tainted as a host-cdrom passthrough. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Laine Stump <laine@laine.org>
This commit is contained in:
parent
fe0fe366bf
commit
fc66d24066
@ -6483,35 +6483,6 @@ qemuDomainDefFormatLive(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* qemuDomainFilePathIsHostCDROM
|
|
||||||
* @path: Supplied path.
|
|
||||||
*
|
|
||||||
* Determine if the path is a host CD-ROM path. Typically this is
|
|
||||||
* either /dev/cdrom[n] or /dev/srN, so those are easy checks, but
|
|
||||||
* it's also possible that @path resolves to /dev/srN, so check for
|
|
||||||
* those conditions on @path in order to emit the tainted message.
|
|
||||||
*
|
|
||||||
* Returns true if the path is a CDROM, false otherwise or on error.
|
|
||||||
*/
|
|
||||||
static bool
|
|
||||||
qemuDomainFilePathIsHostCDROM(const char *path)
|
|
||||||
{
|
|
||||||
bool ret = false;
|
|
||||||
char *linkpath = NULL;
|
|
||||||
|
|
||||||
if (virFileResolveLink(path, &linkpath) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (STRPREFIX(path, "/dev/cdrom") || STRPREFIX(path, "/dev/sr") ||
|
|
||||||
STRPREFIX(linkpath, "/dev/sr"))
|
|
||||||
ret = true;
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
VIR_FREE(linkpath);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void qemuDomainObjTaint(virQEMUDriverPtr driver,
|
void qemuDomainObjTaint(virQEMUDriverPtr driver,
|
||||||
virDomainObjPtr obj,
|
virDomainObjPtr obj,
|
||||||
virDomainTaintFlags taint,
|
virDomainTaintFlags taint,
|
||||||
@ -6630,7 +6601,7 @@ void qemuDomainObjCheckDiskTaint(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM &&
|
if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM &&
|
||||||
virStorageSourceGetActualType(disk->src) == VIR_STORAGE_TYPE_BLOCK &&
|
virStorageSourceGetActualType(disk->src) == VIR_STORAGE_TYPE_BLOCK &&
|
||||||
disk->src->path && qemuDomainFilePathIsHostCDROM(disk->src->path))
|
disk->src->path && virFileIsCDROM(disk->src->path) == 1)
|
||||||
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_CDROM_PASSTHROUGH,
|
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_CDROM_PASSTHROUGH,
|
||||||
logCtxt);
|
logCtxt);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user