/**
* qemuDomainDiskLookupByNodename:
* @def: domain definition to look for the disk
+ * @backupdef: definition of the backup job of the domain (optional)
* @nodename: block backend node name to find
* @src: filled with the specific backing store element if provided
*
*/
virDomainDiskDefPtr
qemuDomainDiskLookupByNodename(virDomainDefPtr def,
+ virDomainBackupDefPtr backupdef,
const char *nodename,
virStorageSourcePtr *src)
{
return domdisk;
}
+ if (backupdef) {
+ for (i = 0; i < backupdef->ndisks; i++) {
+ virDomainBackupDiskDefPtr backupdisk = backupdef->disks + i;
+
+ if (backupdisk->store &&
+ (*src = virStorageSourceFindByNodeName(backupdisk->store, nodename)))
+ return virDomainDiskByTarget(def, backupdisk->name);
+ }
+ }
+
return NULL;
}
int *perms);
virDomainDiskDefPtr qemuDomainDiskLookupByNodename(virDomainDefPtr def,
+ virDomainBackupDefPtr backupdef,
const char *nodename,
virStorageSourcePtr *src);
if (diskAlias)
disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, diskAlias, NULL);
else if (nodename)
- disk = qemuDomainDiskLookupByNodename(vm->def, nodename, NULL);
+ disk = qemuDomainDiskLookupByNodename(vm->def, NULL, nodename, NULL);
else
disk = NULL;
unsigned long long excess,
void *opaque)
{
+ qemuDomainObjPrivatePtr priv;
virQEMUDriverPtr driver = opaque;
virObjectEventPtr eventSource = NULL;
virObjectEventPtr eventDevice = NULL;
virObjectLock(vm);
+ priv = vm->privateData;
+
VIR_DEBUG("BLOCK_WRITE_THRESHOLD event for block node '%s' in domain %p %s:"
"threshold '%llu' exceeded by '%llu'",
nodename, vm, vm->def->name, threshold, excess);
- if ((disk = qemuDomainDiskLookupByNodename(vm->def, nodename, &src))) {
+ if ((disk = qemuDomainDiskLookupByNodename(vm->def, priv->backup, nodename, &src))) {
if (virStorageSourceIsLocalStorage(src))
path = src->path;