diff options
author | Petr Rockai <me@mornfall.net> | 2013-04-03 12:48:28 +0200 |
---|---|---|
committer | Petr Rockai <me@mornfall.net> | 2013-04-03 12:48:28 +0200 |
commit | 382fc878d7be5252d7ad93f2740ee25bd500d53e (patch) | |
tree | 50662fd2ef0ae3a9177b227431d225341bb84746 /lib | |
parent | 00ed6759c8cbf2f4497fa0d5f7df69780159539a (diff) | |
download | lvm2-382fc878d7be5252d7ad93f2740ee25bd500d53e.tar.gz |
lvmetad: Check for reappeared PVs.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cache/lvmetad.c | 2 | ||||
-rw-r--r-- | lib/metadata/metadata.c | 4 | ||||
-rw-r--r-- | lib/metadata/metadata.h | 3 |
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 |