From c3bb6d77dd6193755070c62c6f3adb93c1976f19 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Wed, 28 Jan 2015 16:29:35 +0100 Subject: [PATCH] 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. --- lib/activate/activate.c | 5 +++++ 1 file changed, 5 insertions(+) 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. */