mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-08 22:15:21 +00:00
virstorageobj: Introduce VIR_STORAGE_POOL_OBJ_LIST_ADD_LIVE flag
This flag can be used to denote that the definition we're trying to assign to a pool object is live definition and thus the inactive definition should be saved into ->newDef. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
bc281fec0f
commit
1340327f48
@ -1508,14 +1508,18 @@ virStoragePoolObjSourceFindDuplicate(virStoragePoolObjListPtr pools,
|
||||
static void
|
||||
virStoragePoolObjAssignDef(virStoragePoolObjPtr obj,
|
||||
virStoragePoolDefPtr def,
|
||||
unsigned int flgs ATTRIBUTE_UNUSED)
|
||||
unsigned int flags)
|
||||
{
|
||||
if (!virStoragePoolObjIsActive(obj)) {
|
||||
virStoragePoolDefFree(obj->def);
|
||||
obj->def = def;
|
||||
} else {
|
||||
if (virStoragePoolObjIsActive(obj)) {
|
||||
virStoragePoolDefFree(obj->newDef);
|
||||
obj->newDef = def;
|
||||
} else {
|
||||
if (!obj->newDef &&
|
||||
flags & VIR_STORAGE_POOL_OBJ_LIST_ADD_LIVE)
|
||||
VIR_STEAL_PTR(obj->newDef, obj->def);
|
||||
|
||||
virStoragePoolDefFree(obj->def);
|
||||
obj->def = def;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1529,6 +1533,11 @@ virStoragePoolObjAssignDef(virStoragePoolObjPtr obj,
|
||||
* Lookup the @def to see if it already exists in the @pools in order
|
||||
* to either update or add if it does not exist.
|
||||
*
|
||||
* Use VIR_STORAGE_POOL_OBJ_LIST_ADD_LIVE to denote that @def
|
||||
* refers to an active definition and thus any possible inactive
|
||||
* definition found should be saved to ->newDef (in case of
|
||||
* future restore).
|
||||
*
|
||||
* If VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE is set in @flags
|
||||
* then this will fail if the pool exists and is active.
|
||||
*
|
||||
|
@ -195,6 +195,7 @@ virStoragePoolObjVolumeListExport(virConnectPtr conn,
|
||||
virStoragePoolVolumeACLFilter filter);
|
||||
|
||||
typedef enum {
|
||||
VIR_STORAGE_POOL_OBJ_LIST_ADD_LIVE = (1 << 0),
|
||||
VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1),
|
||||
} virStoragePoolObjListFlags;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user