[libvirt] ambiguous ret of qemuDomainDetachVirtioDiskDevice
zhang bo
oscar.zhangbo at huawei.com
Tue Jul 28 08:25:13 UTC 2015
static int
qemuDomainDetachVirtioDiskDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDiskDefPtr detach)
{
.......
rc = qemuDomainWaitForDeviceRemoval(vm);
if (rc == 0 || rc == 1)
ret = qemuDomainRemoveDiskDevice(driver, vm, detach);
else
ret = 0; /*the return value of 2 is dismissed here, which refers to ETIMEOUT.*/
........
}
------------------------------------
If it timeouts when qemu tries to del the device, the return value would be modified from 2 to 0 in
function qemuDomainDetachVirtioDiskDevice(), which means that, the users would be misleaded that
the device has been deleted, however, the device maybe probably failed to be detached after timeout and
still in use.
That is to say, the function qemuDomainDetachVirtioDiskDevice()'s return value is ambiguous when it's 0,
maybe successful, or timeout. Will it be better to pass ETIMEOUT to user? or any other advises? for example,
let users themselves dumpxml the guest to check whether the device has been actually detached or not?
--
Oscar
oscar.zhangbo at huawei.com
More information about the libvir-list
mailing list