summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2014-09-19 01:09:36 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2014-09-19 01:13:49 +0200
commitd8b775f4eb871e771c9f18dcd9f6b28509e7e52a (patch)
treea816d1d376bad0ed1e6dd886593d686461077da0
parentb0bd8ce4086531f4f83ce417ddb988d8b4e0907a (diff)
downloadlvm2-d8b775f4eb871e771c9f18dcd9f6b28509e7e52a.tar.gz
memlock: drop uneeded lock
Avoid doing buffered operation within memory lock.
-rw-r--r--lib/metadata/lv_manip.c4
-rw-r--r--lib/metadata/thin_manip.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 58bc79b06..2e683b9e0 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -29,6 +29,7 @@
#include "defaults.h"
#include "lvm-exec.h"
#include "lvm-signal.h"
+#include "memlock.h"
typedef enum {
PREFERRED,
@@ -6877,6 +6878,9 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
thin_name, lp->pvh, lp->alloc, lp->approx_alloc))
return_NULL;
+ /* Unlock memory if possible */
+ memlock_unlock(vg->cmd);
+
if (seg_is_cache_pool(lp)) {
first_seg(lv)->chunk_size = lp->chunk_size;
first_seg(lv)->feature_flags = lp->feature_flags;
diff --git a/lib/metadata/thin_manip.c b/lib/metadata/thin_manip.c
index 61e9c6ecb..b781e0275 100644
--- a/lib/metadata/thin_manip.c
+++ b/lib/metadata/thin_manip.c
@@ -15,6 +15,7 @@
#include "lib.h"
#include "activate.h"
#include "locking.h"
+#include "memlock.h"
#include "metadata.h"
#include "segtype.h"
#include "defaults.h"
@@ -370,6 +371,9 @@ int update_pool_lv(struct logical_volume *lv, int activate)
return_0;
}
init_dmeventd_monitor(monitored);
+
+ /* Unlock memory if possible */
+ memlock_unlock(lv->vg->cmd);
}
/*
* Resume active pool to send thin messages.