diff options
author | Milan Broz <mbroz@redhat.com> | 2009-03-26 09:25:18 +0000 |
---|---|---|
committer | Milan Broz <mbroz@redhat.com> | 2009-03-26 09:25:18 +0000 |
commit | aa8111b3cd94001cd915120b0ff67ead116aeaca (patch) | |
tree | 079bbecd5e7b56b6cb3179b9b456334be0e69baf | |
parent | 0ef8308f1b66728185fcb7d2d615dbdf2024c08f (diff) | |
download | lvm2-aa8111b3cd94001cd915120b0ff67ead116aeaca.tar.gz lvm2-aa8111b3cd94001cd915120b0ff67ead116aeaca.tar.xz lvm2-aa8111b3cd94001cd915120b0ff67ead116aeaca.zip |
fix some issues when compiling with -D DEBUG_POOL
- fix compilation issues
- fix wrong pool object maipulation (lvm dumpconfig triggers assert)
- second iteration in loop _log_parallel_areas operates on non-existing object
-rw-r--r-- | lib/config/config.c | 2 | ||||
-rw-r--r-- | lib/metadata/lv_manip.c | 10 | ||||
-rw-r--r-- | libdm/mm/pool-debug.c | 9 |
3 files changed, 10 insertions, 11 deletions
diff --git a/lib/config/config.c b/lib/config/config.c index c80f18ef..224f2ced 100644 --- a/lib/config/config.c +++ b/lib/config/config.c @@ -457,9 +457,9 @@ static int _write_config(struct config_node *n, int only_one, line_append(" {"); if (!_line_end(outline)) return_0; + _write_config(n->child, 0, outline, level + 1); if (!_line_start(outline)) return_0; - _write_config(n->child, 0, outline, level + 1); line_append("%s}", space); } else { /* it's a value */ diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 2661e0c6..991d63c5 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -611,12 +611,12 @@ static int _log_parallel_areas(struct dm_pool *mem, struct dm_list *parallel_are if (!parallel_areas) return 1; - if (!dm_pool_begin_object(mem, 256)) { - log_error("dm_pool_begin_object failed"); - return 0; - } - dm_list_iterate_items(spvs, parallel_areas) { + if (!dm_pool_begin_object(mem, 256)) { + log_error("dm_pool_begin_object failed"); + return 0; + } + dm_list_iterate_items(pvl, &spvs->pvs) { if (!dm_pool_grow_object(mem, pv_dev_name(pvl->pv), strlen(pv_dev_name(pvl->pv)))) { log_error("dm_pool_grow_object failed"); diff --git a/libdm/mm/pool-debug.c b/libdm/mm/pool-debug.c index b656cc27..911f8e2b 100644 --- a/libdm/mm/pool-debug.c +++ b/libdm/mm/pool-debug.c @@ -14,6 +14,7 @@ */ #include "dmlib.h" +#include <assert.h> struct block { struct block *next; @@ -43,7 +44,7 @@ struct dm_pool { /* by default things come out aligned for doubles */ #define DEFAULT_ALIGNMENT __alignof__ (double) -struct pool *dm_pool_create(const char *name, size_t chunk_hint) +struct dm_pool *dm_pool_create(const char *name, size_t chunk_hint) { struct dm_pool *mem = dm_malloc(sizeof(*mem)); @@ -130,8 +131,6 @@ static void _append_block(struct dm_pool *p, struct block *b) static struct block *_new_block(size_t s, unsigned alignment) { - static const char *_oom = "Out of memory"; - /* FIXME: I'm currently ignoring the alignment arg. */ size_t len = sizeof(struct block) + s; struct block *b = dm_malloc(len); @@ -144,12 +143,12 @@ static struct block *_new_block(size_t s, unsigned alignment) assert(alignment == DEFAULT_ALIGNMENT); if (!b) { - log_err(_oom); + log_err("Out of memory"); return NULL; } if (!(b->data = dm_malloc(s))) { - log_err(_oom); + log_err("Out of memory"); dm_free(b); return NULL; } |