diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 9b93f256e8..57635cd419 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -558,6 +558,16 @@ qemuDomainChangeMediaBlockdev(virQEMUDriverPtr driver, nodename); } + /* set throttling for the new image */ + if (rc == 0 && + !virStorageSourceIsEmpty(newsrc) && + qemuDiskConfigBlkdeviotuneEnabled(disk)) { + rc = qemuMonitorSetBlockIoThrottle(priv->mon, NULL, + diskPriv->qomName, + &disk->blkdeviotune, + true, true, true); + } + if (rc == 0) rc = qemuMonitorBlockdevTrayClose(priv->mon, diskPriv->qomName); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index e7421b415f..414e9327d2 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6838,6 +6838,10 @@ qemuProcessSetupDiskThrottlingBlockdev(virQEMUDriverPtr driver, if (qemuDiskBusIsSD(disk->bus)) continue; + /* Setting throttling for empty drives fails */ + if (virStorageSourceIsEmpty(disk->src)) + continue; + if (!qemuDiskConfigBlkdeviotuneEnabled(disk)) continue;