[lvm-devel] [PATCH 2/6] Code move vg_mark_partial up in stack
Zdenek Kabelac
zkabelac at redhat.com
Tue Mar 22 21:21:56 UTC 2011
It's useful to keep the partial flag cached - so just move the call
for vg_mark_partil_lvs into lvmcache.c
This patch should not present any functional change.
Signed-off-by: Zdenek Kabelac <zkabelac at redhat.com>
---
lib/cache/lvmcache.c | 7 +++++++
lib/metadata/metadata.c | 5 -----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c
index 037fc4a..d0de34f 100644
--- a/lib/cache/lvmcache.c
+++ b/lib/cache/lvmcache.c
@@ -639,6 +639,7 @@ struct volume_group *lvmcache_get_vg(const char *vgid, unsigned precommitted)
struct volume_group *vg = NULL;
struct format_instance *fid;
struct format_instance_ctx fic;
+ int vg_missing;
if (!vgid || !(vginfo = vginfo_from_vgid(vgid)) || !vginfo->vgmetadata)
return NULL;
@@ -678,6 +679,12 @@ struct volume_group *lvmcache_get_vg(const char *vgid, unsigned precommitted)
if (!(vg = import_vg_from_config_tree(vginfo->cft, fid)))
goto_bad;
+ if ((vg_missing = vg_missing_pv_count(vg))) {
+ log_verbose("There are %d physical volumes missing.",
+ vg_missing);
+ vg_mark_partial_lvs(vg);
+ }
+
log_debug("Using cached %smetadata for VG %s.",
vginfo->precommitted ? "pre-committed" : "", vginfo->vgname);
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index f4d4671..b6312a0 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -2819,11 +2819,6 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
else /* Inconsistent but we can't repair it */
correct_vg->status &= ~INCONSISTENT_VG;
- if (vg_missing_pv_count(correct_vg)) {
- log_verbose("There are %d physical volumes missing.",
- vg_missing_pv_count(correct_vg));
- vg_mark_partial_lvs(correct_vg);
- }
return correct_vg;
} else {
free_vg(correct_vg);
--
1.7.4.1
More information about the lvm-devel
mailing list