diff options
author | Petr Rockai <prockai@redhat.com> | 2015-06-10 16:18:57 +0200 |
---|---|---|
committer | Petr Rockai <prockai@redhat.com> | 2015-06-10 16:18:57 +0200 |
commit | 4f91ad64c3c76ab31efe6bfad362adefd47adff2 (patch) | |
tree | dab38807cf2484ecd40566fc5a05f1da0fd5c440 | |
parent | 756d027da5cd0e10b10181515a75ecf8d275a5b3 (diff) | |
download | lvm2-4f91ad64c3c76ab31efe6bfad362adefd47adff2.tar.gz |
lvmetad: Make it possible to clear the outdated PVs list for a VG.
-rw-r--r-- | daemons/lvmetad/lvmetad-core.c | 18 |
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); |