summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Rockai <prockai@redhat.com>2015-04-15 16:39:32 +0200
committerPetr Rockai <prockai@redhat.com>2015-05-20 19:46:13 +0200
commit1562cd732060f995663a586566b15bc129e62b64 (patch)
tree5f685a7b840141461ba6e964615213b6e4a1141c
parentda1527d65dbe474fe4c9e620ad028a9a09213ac8 (diff)
downloadlvm2-1562cd732060f995663a586566b15bc129e62b64.tar.gz
lvmetad: Attach an outdated_pvs list to vg_lookup replies.
-rw-r--r--daemons/lvmetad/lvmetad-core.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index d14bac267..40cf7d470 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -470,8 +470,13 @@ static void mark_outdated_pv(lvmetad_state *s, const char *vgid, const char *pvi
list->v = v;
}
-static void chain_outdated_pvs(lvmetad_state *s, const char *vgid, struct dm_config_tree *metadata)
+static void chain_outdated_pvs(lvmetad_state *s, const char *vgid, struct dm_config_tree *metadata, struct dm_config_node *last)
{
+ struct dm_config_tree *cft = dm_hash_lookup(s->vgid_to_outdated_pvs, vgid);
+ if (!cft)
+ return; /* nothing to chain in */
+ last->sib = dm_config_clone_node(metadata, dm_config_find_node(cft->root, "outdated_pvs/pv_list"), 0);
+ last->sib->key = "outdated_pvs";
}
static response vg_lookup(lvmetad_state *s, request r)
@@ -540,7 +545,7 @@ static response vg_lookup(lvmetad_state *s, request r)
unlock_vg(s, uuid);
update_pv_status(s, res.cft, n, 1); /* FIXME report errors */
- chain_outdated_pvs(s, uuid, res.cft);
+ chain_outdated_pvs(s, uuid, res.cft, n);
return res;
bad: