[lvm-devel] master - cache: recognize cachevol with lv_cache_remove

Zdenek Kabelac zkabelac at sourceware.org
Mon Oct 14 13:21:59 UTC 2019


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=bc35ccd1740a588293b5a2eb5bbe936f837f6c21
Commit:        bc35ccd1740a588293b5a2eb5bbe936f837f6c21
Parent:        36944e1009e932902269d3eab547e0b19da13468
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Sat Oct 12 23:40:15 2019 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Oct 14 15:14:25 2019 +0200

cache: recognize cachevol with lv_cache_remove

---
 lib/metadata/cache_manip.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/lib/metadata/cache_manip.c b/lib/metadata/cache_manip.c
index e4cd345..e444e37 100644
--- a/lib/metadata/cache_manip.c
+++ b/lib/metadata/cache_manip.c
@@ -758,6 +758,7 @@ int lv_cache_remove(struct logical_volume *cache_lv)
 	struct lv_segment *cache_seg = first_seg(cache_lv);
 	struct logical_volume *corigin_lv;
 	struct logical_volume *cache_pool_lv;
+	cache_mode_t cache_mode;
 	int is_clear;
 
 	if (!lv_is_cache(cache_lv)) {
@@ -783,7 +784,9 @@ int lv_cache_remove(struct logical_volume *cache_lv)
 		if (!deactivate_lv_with_sub_lv(cache_lv))
 			return_0;
 
-		switch (first_seg(cache_seg->pool_lv)->cache_mode) {
+		cache_mode = (lv_is_cache_pool(cache_seg->pool_lv)) ?
+			first_seg(cache_seg->pool_lv)->cache_mode : cache_seg->cache_mode;
+		switch (cache_mode) {
 		case CACHE_MODE_WRITETHROUGH:
 		case CACHE_MODE_PASSTHROUGH:
 			/* For inactive pass/writethrough just drop cache layer */




More information about the lvm-devel mailing list