mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
cache: move setting of cache policy
Set policy before saving 1st. metadata and avoid unnecessary reload. Fixes problem when we stored cache-pool without cache-policy set.
This commit is contained in:
parent
4a33d57143
commit
86a4d47215
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.126 -
|
Version 2.02.126 -
|
||||||
================================
|
================================
|
||||||
|
Set cache policy before with the first lvm2 cache pool metadata commit.
|
||||||
Fix detection of thin-pool overprovisioning (2.02.124).
|
Fix detection of thin-pool overprovisioning (2.02.124).
|
||||||
Fix lvmpolld segfaults on 32 bit architectures.
|
Fix lvmpolld segfaults on 32 bit architectures.
|
||||||
Fix ignored --startstopservices option if running lvmconf with systemd.
|
Fix ignored --startstopservices option if running lvmconf with systemd.
|
||||||
|
@ -7245,6 +7245,8 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
|
|||||||
|
|
||||||
if (seg_is_cache_pool(lp) || seg_is_cache(lp)) {
|
if (seg_is_cache_pool(lp) || seg_is_cache(lp)) {
|
||||||
pool_lv = pool_lv ? : lv;
|
pool_lv = pool_lv ? : lv;
|
||||||
|
if (!lv_cache_setpolicy(pool_lv, lp->cache_policy))
|
||||||
|
return_NULL; /* revert? */
|
||||||
first_seg(pool_lv)->chunk_size = lp->chunk_size;
|
first_seg(pool_lv)->chunk_size = lp->chunk_size;
|
||||||
first_seg(pool_lv)->feature_flags = lp->feature_flags;
|
first_seg(pool_lv)->feature_flags = lp->feature_flags;
|
||||||
/* TODO: some calc_policy solution for cache ? */
|
/* TODO: some calc_policy solution for cache ? */
|
||||||
@ -7437,13 +7439,6 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lv_is_cache_pool(lv) && !origin_lv) {
|
|
||||||
if (lp->cache_policy && !lv_cache_setpolicy(lv, lp->cache_policy))
|
|
||||||
return NULL; /* revert? */
|
|
||||||
if (!lv_update_and_reload(lv))
|
|
||||||
return NULL; /* FIXME: revert */
|
|
||||||
}
|
|
||||||
|
|
||||||
if (seg_is_cache(lp) || (origin_lv && lv_is_cache_pool(lv))) {
|
if (seg_is_cache(lp) || (origin_lv && lv_is_cache_pool(lv))) {
|
||||||
/* Finish cache conversion magic */
|
/* Finish cache conversion magic */
|
||||||
if (origin_lv) {
|
if (origin_lv) {
|
||||||
|
Loading…
Reference in New Issue
Block a user