1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

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
This commit is contained in:
Milan Broz 2009-03-26 09:25:18 +00:00
parent 0ef8308f1b
commit aa8111b3cd
3 changed files with 10 additions and 11 deletions

View File

@ -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 */

View File

@ -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");

View File

@ -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;
}