struct dm_config_tree *settings = NULL;
struct lv_segment *pool_seg = first_seg(lv);
int r = 0, is_clean;
+ uint32_t chunk_size = 0; /* FYI: lvchange does NOT support its change */
if (lv_is_cache(lv))
pool_seg = first_seg(pool_seg->pool_lv);
- if (!get_cache_params(cmd, &mode, &name, &settings))
+ if (!get_cache_params(cmd, &chunk_size, &mode, &name, &settings))
goto_out;
if ((mode != CACHE_MODE_UNSELECTED) &&
cache_mode_t cache_mode = 0;
const char *policy_name = NULL;
- if (!get_cache_params(cmd, &cache_mode, &policy_name, &policy_settings))
+ if (!get_cache_params(cmd, &chunk_size, &cache_mode, &policy_name, &policy_settings))
goto_bad;
if (cache_mode &&
struct logical_volume *cachepool_lv)
{
struct logical_volume *cache_lv;
+ uint32_t chunk_size = 0;
cache_mode_t cache_mode = 0;
const char *policy_name = NULL;
struct dm_config_tree *policy_settings = NULL;
if (!validate_lv_cache_create_pool(cachepool_lv))
return_0;
- if (!get_cache_params(cmd, &cache_mode, &policy_name, &policy_settings))
+ if (!get_cache_params(cmd, &chunk_size, &cache_mode, &policy_name, &policy_settings))
goto_bad;
if (!archive(lv->vg))
if (!(cache_lv = lv_cache_create(cachepool_lv, lv)))
goto_bad;
- if (!cache_set_cache_mode(first_seg(cache_lv), cache_mode))
- goto_bad;
-
- if (!cache_set_policy(first_seg(cache_lv), policy_name, policy_settings))
+ if (!cache_set_params(first_seg(cache_lv), chunk_size, cache_mode, policy_name, policy_settings))
goto_bad;
cache_check_for_warns(first_seg(cache_lv));
struct volume_group *vg = lv->vg;
struct logical_volume *cachepool_lv;
const char *cachepool_name;
- uint32_t chunk_size = 0;
if (!(cachepool_name = arg_str_value(cmd, cachepool_ARG, NULL)))
goto_out;
goto out;
}
- if (arg_is_set(cmd, chunksize_ARG))
- chunk_size = arg_uint_value(cmd, chunksize_ARG, 0);
- if (!chunk_size)
- chunk_size = first_seg(cachepool_lv)->chunk_size;
-
- /* FIXME: why is chunk_size read and checked if it's not used? */
-
- if (!validate_lv_cache_chunk_size(cachepool_lv, chunk_size))
- goto_out;
-
/* Note: requires rather deep know-how to skip zeroing */
if (!arg_is_set(cmd, zero_ARG)) {
if (!arg_is_set(cmd, yes_ARG) &&