aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPetr Rockai <me@mornfall.net>2013-04-03 12:48:28 +0200
committerPetr Rockai <me@mornfall.net>2013-04-03 12:48:28 +0200
commit382fc878d7be5252d7ad93f2740ee25bd500d53e (patch)
tree50662fd2ef0ae3a9177b227431d225341bb84746 /lib
parent00ed6759c8cbf2f4497fa0d5f7df69780159539a (diff)
downloadlvm2-382fc878d7be5252d7ad93f2740ee25bd500d53e.tar.gz
lvmetad: Check for reappeared PVs.
Diffstat (limited to 'lib')
-rw-r--r--lib/cache/lvmetad.c2
-rw-r--r--lib/metadata/metadata.c4
-rw-r--r--lib/metadata/metadata.h3
3 files changed, 7 insertions, 2 deletions
diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index a7354a7bf..4ea3dbd9b 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -389,6 +389,8 @@ struct volume_group *lvmetad_vg_lookup(struct cmd_context *cmd, const char *vgna
pvl->pv->dev = lvmcache_device(info);
if (!pvl->pv->dev)
pvl->pv->status |= MISSING_PV;
+ else
+ check_reappeared_pv(vg, pvl->pv);
if (!lvmcache_fid_add_mdas_pv(info, fid)) {
vg = NULL;
goto_out; /* FIXME error path */
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 911a4c89d..bde1cb07a 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -2836,8 +2836,8 @@ int vg_missing_pv_count(const struct volume_group *vg)
return ret;
}
-static void check_reappeared_pv(struct volume_group *correct_vg,
- struct physical_volume *pv)
+void check_reappeared_pv(struct volume_group *correct_vg,
+ struct physical_volume *pv)
{
struct pv_list *pvl;
diff --git a/lib/metadata/metadata.h b/lib/metadata/metadata.h
index 0c13a97c2..4f504ed79 100644
--- a/lib/metadata/metadata.h
+++ b/lib/metadata/metadata.h
@@ -491,4 +491,7 @@ int is_mirror_image_removable(struct logical_volume *mimage_lv, void *baton);
uint64_t find_min_mda_size(struct dm_list *mdas);
char *tags_format_and_copy(struct dm_pool *mem, const struct dm_list *tags);
+void check_reappeared_pv(struct volume_group *correct_vg,
+ struct physical_volume *pv);
+
#endif