Version 2.02.80 -
====================================
+ Speedup command processing by caching resolved config tree.
Pass config_tree to renamed function import_vg_from_config_tree().
Detect NULL handle in get_property().
Fix superfluous /usr in ocf_scriptdir instalation path.
vginfo->vgmetadata = NULL;
+ /* Release also cached config tree */
+ if (vginfo->cft) {
+ destroy_config_tree(vginfo->cft);
+ vginfo->cft = NULL;
+ }
+
log_debug("Metadata cache: VG %s wiped.", vginfo->vgname);
}
vgid, NULL)))
return_NULL;
- if (!(vginfo->cft =
+ /* Build config tree from vgmetadata, if not yet cached */
+ if (!vginfo->cft &&
+ !(vginfo->cft =
create_config_tree_from_string(fid->fmt->cmd,
vginfo->vgmetadata))) {
_free_cached_vgmetadata(vginfo);
if (!(vg = import_vg_from_config_tree(vginfo->cft, fid))) {
_free_cached_vgmetadata(vginfo);
- destroy_config_tree(vginfo->cft);
return_NULL;
}
- destroy_config_tree(vginfo->cft);
log_debug("Using cached %smetadata for VG %s.",
vginfo->precommitted ? "pre-committed" : "", vginfo->vgname);
char *creation_host;
char *vgmetadata; /* Copy of VG metadata as format_text string */
struct config_tree *cft; /* Config tree created from vgmetadata */
+ /* Lifetime is directly tied to vgmetadata */
unsigned precommitted; /* Is vgmetadata live or precommitted? */
};