summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Rockai <prockai@redhat.com>2015-06-10 16:18:57 +0200
committerPetr Rockai <prockai@redhat.com>2015-06-10 16:18:57 +0200
commit4f91ad64c3c76ab31efe6bfad362adefd47adff2 (patch)
treedab38807cf2484ecd40566fc5a05f1da0fd5c440
parent756d027da5cd0e10b10181515a75ecf8d275a5b3 (diff)
downloadlvm2-4f91ad64c3c76ab31efe6bfad362adefd47adff2.tar.gz
lvmetad: Make it possible to clear the outdated PVs list for a VG.
-rw-r--r--daemons/lvmetad/lvmetad-core.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index db8d9180e..57a86e4e2 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -1131,6 +1131,21 @@ out_of_mem:
NULL);
}
+static response vg_clear_outdated_pvs(lvmetad_state *s, request r)
+{
+ struct dm_config_tree *outdated_pvs;
+ const char *vgid = daemon_request_str(r, "vgid", NULL);
+
+ if (!vgid)
+ return reply_fail("need VG UUID");
+
+ if ((outdated_pvs = dm_hash_lookup(s->vgid_to_outdated_pvs, vgid))) {
+ dm_config_destroy(outdated_pvs);
+ dm_hash_remove(s->vgid_to_outdated_pvs, vgid);
+ }
+ return daemon_reply_simple("OK", NULL);
+}
+
static response vg_update(lvmetad_state *s, request r)
{
struct dm_config_node *metadata = dm_config_find_node(r.cft->root, "metadata");
@@ -1289,6 +1304,9 @@ static response handler(daemon_state s, client_handle h, request r)
if (!strcmp(rq, "vg_update"))
return vg_update(state, r);
+ if (!strcmp(rq, "vg_clear_outdated_pvs"))
+ return vg_clear_outdated_pvs(state, r);
+
if (!strcmp(rq, "vg_remove"))
return vg_remove(state, r);