From 23de09aeb87ec10bd1a553ea8868e2f946117232 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Mon, 5 Mar 2018 12:54:39 +0100 Subject: [PATCH] lvcreate: fix activation of cached LV Since LV for caching can be already a stacked LV, proper activation needs to use lock holding LV. --- WHATS_NEW | 1 + tools/lvcreate.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/WHATS_NEW b/WHATS_NEW index 49b995e29..3ed3e5a20 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.178 - ===================================== + Activate correct lock holding LV when it is cached. Do not modify archived metadata when removing striped raid. Fix memleak on error path when obtaining lv_raid_data_offset. Fix compatibility size test of extended external origin. diff --git a/tools/lvcreate.c b/tools/lvcreate.c index 7f86a3731..e901968d7 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -1222,6 +1222,8 @@ static int _determine_cache_argument(struct volume_group *vg, return_0; /* FIXME */ /* Put origin into resulting activation state first */ + lv = (struct logical_volume *)lv_lock_holder(lv); + if (is_change_activating(lp->activate)) { if ((lp->activate == CHANGE_AAY) && !lv_passes_auto_activation_filter(cmd, lv)) { -- 2.43.5