summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-01-28 16:29:35 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2015-01-28 16:29:35 +0100
commitc3bb6d77dd6193755070c62c6f3adb93c1976f19 (patch)
tree2384702bfeba1016cd687e2fdaec232304bc04b0
parent4f1309080a462988e10c11a328356a6c5c22dd6e (diff)
downloadlvm2-c3bb6d77dd6193755070c62c6f3adb93c1976f19.tar.gz
cache: add pool deps for preload
for_each_sub_lv() normally does not put pool_lv into deps. So for now go around it in 'lv_preload()' and add explicit call with pool. TODO: think about a better way, we want pool_lv deps only in certain moments, so maybe for_each_sub_lv() needs new arg for this.
-rw-r--r--lib/activate/activate.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 151e7143f..00d3a100f 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -1879,6 +1879,11 @@ static int _lv_suspend(struct cmd_context *cmd, const char *lvid_s,
if (!for_each_sub_lv((struct logical_volume *)ondisk_lv, &_preload_detached_lv, &detached))
goto_out;
+ /* ATM cache/thin pool is not scanned in 'for_each_sub_lv()', TODO explore better way */
+ if (lv_is_cache(ondisk_lv) &&
+ !for_each_sub_lv(first_seg(ondisk_lv)->pool_lv, &_preload_detached_lv, &detached))
+ goto_out;
+
/*
* Preload any snapshots that are being removed.
*/