[lvm-devel] master - lvmetad: fix to properly process embedding area

Peter Rajnoha prajnoha at fedoraproject.org
Wed Feb 27 09:40:59 UTC 2013


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=9d5a3c16dd4f5ea64ba3d89ead049a116f728d64
Commit:        9d5a3c16dd4f5ea64ba3d89ead049a116f728d64
Parent:        b3776468fa07a0bc173dd01152a4f6010c4d174d
Author:        Peter Rajnoha <prajnoha at redhat.com>
AuthorDate:    Wed Feb 27 10:36:49 2013 +0100
Committer:     Peter Rajnoha <prajnoha at redhat.com>
CommitterDate: Wed Feb 27 10:36:49 2013 +0100

lvmetad: fix to properly process embedding area

---
 lib/cache/lvmetad.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index 2f9ffea..3cde71e 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -306,9 +306,12 @@ static struct lvmcache_info *_pv_populate_lvmcache(
 	do {
 		sprintf(da_id, "ea%d", i);
 		da = dm_config_find_node(cn->child, da_id);
-		if (!dm_config_get_uint64(da->child, "offset", &offset)) return_0;
-		if (!dm_config_get_uint64(da->child, "size", &size)) return_0;
-		lvmcache_add_ea(info, offset, size);
+		if (da) {
+			if (!dm_config_get_uint64(da->child, "offset", &offset)) return_0;
+			if (!dm_config_get_uint64(da->child, "size", &size)) return_0;
+			lvmcache_add_ea(info, offset, size);
+		}
+		++i;
 	} while (da);
 
 	return info;
@@ -675,7 +678,7 @@ static int _extract_disk_location(const char *name, struct disk_locn *dl, void *
 	if (!dl)
 		return 1;
 
-	(void) dm_snprintf(id, 32, "name%d", b->i);
+	(void) dm_snprintf(id, 32, "%s%d", name, b->i);
 	if (!(cn = make_config_node(b->cft, id, b->cft->root, b->pre_sib)))
 		return 0;
 	if (!config_make_nodes(b->cft, cn, NULL,
@@ -710,6 +713,7 @@ static int _extract_mdas(struct lvmcache_info *info, struct dm_config_tree *cft,
 	baton.i = 0;
 	if (!lvmcache_foreach_da(info, &_extract_da, &baton))
 		return 0;
+	baton.i = 0;
 	if (!lvmcache_foreach_ea(info, &_extract_ea, &baton))
 		return 0;
 




More information about the lvm-devel mailing list