Don't spam logs with "port 0 must be in range" errors
Whenever virPortAllocatorRelease is called with port == 0, it complains that the port is not in an allowed range, which is expectable as the port was never allocated. Let's make virPortAllocatorRelease ignore 0 ports in a similar way free() ignores NULL pointers. (cherry picked from commit 86dba8f3de32cb4d32156f64e7f580f6c5f42a12) Conflicts: missing VNC websocket support src/qemu/qemu_process.c
This commit is contained in:
parent
2e35d28749
commit
05700f6045
@ -1158,7 +1158,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(diskAlias);
|
||||
if ((ret < 0) && port)
|
||||
if (ret < 0)
|
||||
virPortAllocatorRelease(driver->remotePorts, port);
|
||||
return ret;
|
||||
}
|
||||
@ -2291,7 +2291,7 @@ cleanup:
|
||||
virObjectUnlock(vm);
|
||||
else
|
||||
qemuDomainRemoveInactive(driver, vm);
|
||||
if (ret < 0 && priv->nbdPort) {
|
||||
if (ret < 0) {
|
||||
virPortAllocatorRelease(driver->remotePorts, priv->nbdPort);
|
||||
priv->nbdPort = 0;
|
||||
}
|
||||
|
@ -3340,8 +3340,7 @@ qemuProcessSPICEAllocatePorts(virQEMUDriverPtr driver,
|
||||
return 0;
|
||||
|
||||
error:
|
||||
if (port)
|
||||
virPortAllocatorRelease(driver->remotePorts, port);
|
||||
virPortAllocatorRelease(driver->remotePorts, port);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -4052,10 +4051,8 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
||||
}
|
||||
}
|
||||
|
||||
if (priv->nbdPort) {
|
||||
virPortAllocatorRelease(driver->remotePorts, priv->nbdPort);
|
||||
priv->nbdPort = 0;
|
||||
}
|
||||
virPortAllocatorRelease(driver->remotePorts, priv->nbdPort);
|
||||
priv->nbdPort = 0;
|
||||
|
||||
if (priv->agent) {
|
||||
qemuAgentClose(priv->agent);
|
||||
@ -4172,15 +4169,15 @@ retry:
|
||||
virDomainGraphicsDefPtr graphics = vm->def->graphics[i];
|
||||
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC &&
|
||||
graphics->data.vnc.autoport) {
|
||||
ignore_value(virPortAllocatorRelease(driver->remotePorts,
|
||||
graphics->data.vnc.port));
|
||||
virPortAllocatorRelease(driver->remotePorts,
|
||||
graphics->data.vnc.port);
|
||||
}
|
||||
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE &&
|
||||
graphics->data.spice.autoport) {
|
||||
ignore_value(virPortAllocatorRelease(driver->remotePorts,
|
||||
graphics->data.spice.port));
|
||||
ignore_value(virPortAllocatorRelease(driver->remotePorts,
|
||||
graphics->data.spice.tlsPort));
|
||||
virPortAllocatorRelease(driver->remotePorts,
|
||||
graphics->data.spice.port);
|
||||
virPortAllocatorRelease(driver->remotePorts,
|
||||
graphics->data.spice.tlsPort);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,6 +166,10 @@ int virPortAllocatorRelease(virPortAllocatorPtr pa,
|
||||
unsigned short port)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
if (!port)
|
||||
return 0;
|
||||
|
||||
virObjectLock(pa);
|
||||
|
||||
if (port < pa->start ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user