diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2014-04-17 10:42:41 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2014-04-18 16:38:47 +0200 |
commit | 47a60369a0473bb5f4f8a9d153c83d1a3f4f187d (patch) | |
tree | b87f6fd58be3fb8f3e197b36766df25765ad4653 | |
parent | b5f8f452ac563ef07513e770b3202c6dc209443c (diff) | |
download | lvm2-47a60369a0473bb5f4f8a9d153c83d1a3f4f187d.tar.gz |
unknown: fix mempool used for name allocation
Use cmd libmem mempool for name allocation, since mem mempool
is released after each clvmd command.
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | lib/unknown/unknown.c | 2 | ||||
-rw-r--r-- | test/shell/unknown-segment.sh | 4 |
3 files changed, 6 insertions, 1 deletions
@@ -1,5 +1,6 @@ Version 2.02.107 - ================================== + Use proper libmem mempool for allocation of unknown segment name. Add --readonly to reporting and display tools for lock-free metadata access. Add locking_type 5 for dummy locking for tools that do not need any locks. Fix _recover_vg() error path when lock conversion fails. diff --git a/lib/unknown/unknown.c b/lib/unknown/unknown.c index f2a65eb82..848a3694e 100644 --- a/lib/unknown/unknown.c +++ b/lib/unknown/unknown.c @@ -95,7 +95,7 @@ struct segment_type *init_unknown_segtype(struct cmd_context *cmd, const char *n segtype->cmd = cmd; segtype->ops = &_unknown_ops; - segtype->name = dm_pool_strdup(cmd->mem, name); + segtype->name = dm_pool_strdup(cmd->libmem, name); segtype->private = NULL; segtype->flags = SEG_UNKNOWN | SEG_VIRTUAL | SEG_CANNOT_BE_ZEROED; diff --git a/test/shell/unknown-segment.sh b/test/shell/unknown-segment.sh index 8ec48d22d..b4a5dfda6 100644 --- a/test/shell/unknown-segment.sh +++ b/test/shell/unknown-segment.sh @@ -23,6 +23,10 @@ vgcfgrestore -f bak0 $vg # we have on-disk metadata with unknown segments now not lvchange -aey $vg/$lv1 # check that activation is refused +# try once more to catch invalid memory access with valgrind +# when clvmd flushes cmd mem pool +not lvchange -aey $vg/$lv1 # check that activation is refused + vgcfgbackup -f bak1 $vg cat bak1 sed -e 's,unstriped,striped,;s,unmirror,mirror,' -i.orig bak1 |