[lvm-devel] master - unknown: fix mempool used for name allocation
Zdenek Kabelac
zkabelac at fedoraproject.org
Fri Apr 18 14:54:54 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=47a60369a0473bb5f4f8a9d153c83d1a3f4f187d
Commit: 47a60369a0473bb5f4f8a9d153c83d1a3f4f187d
Parent: b5f8f452ac563ef07513e770b3202c6dc209443c
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Thu Apr 17 10:42:41 2014 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Apr 18 16:38:47 2014 +0200
unknown: fix mempool used for name allocation
Use cmd libmem mempool for name allocation, since mem mempool
is released after each clvmd command.
---
WHATS_NEW | 1 +
lib/unknown/unknown.c | 2 +-
test/shell/unknown-segment.sh | 4 ++++
3 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index dfa50e8..e7c9b04 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -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 f2a65eb..848a369 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 8ec48d2..b4a5dfd 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
More information about the lvm-devel
mailing list