diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2019-10-12 23:40:15 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2019-10-14 15:14:25 +0200 |
commit | bc35ccd1740a588293b5a2eb5bbe936f837f6c21 (patch) | |
tree | 623b9c076ba2716189368cb3a5acc0a6f54d1232 | |
parent | 36944e1009e932902269d3eab547e0b19da13468 (diff) | |
download | lvm2-bc35ccd1740a588293b5a2eb5bbe936f837f6c21.tar.gz |
cache: recognize cachevol with lv_cache_remove
-rw-r--r-- | 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 e4cd34560..e444e37b7 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 */ |