mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 12:35:17 +00:00
storage: Fix autostart of pool with "fc_host" type adapter
The "checkPool" is a bit different for pool with "fc_host" type source adapter, since the vHBA it's based on might be not created yet (it's created by "startPool", which is involked after "checkPool" in storageDriverAutostart). So it should not fail, otherwise the "autostart" of the pool will fail either. The problem is easy to reproduce: * Enable "autostart" for the pool * Restart libvirtd service * Check the pool's state
This commit is contained in:
parent
2310e631cd
commit
2340f0196f
@ -707,8 +707,19 @@ virStorageBackendSCSICheckPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
|
||||
*isActive = false;
|
||||
|
||||
if (!(name = getAdapterName(pool->def->source.adapter)))
|
||||
return -1;
|
||||
if (!(name = getAdapterName(pool->def->source.adapter))) {
|
||||
/* It's normal for the pool with "fc_host" type source
|
||||
* adapter fails to get the adapter name, since the vHBA
|
||||
* the adapter based on might be not created yet.
|
||||
*/
|
||||
if (pool->def->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
virResetLastError();
|
||||
return 0;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (getHostNumber(name, &host) < 0)
|
||||
goto cleanup;
|
||||
|
Loading…
x
Reference in New Issue
Block a user