]> sourceware.org Git - lvm2.git/commitdiff
cache: get and set cache params
authorZdenek Kabelac <zkabelac@redhat.com>
Thu, 9 Mar 2017 15:20:44 +0000 (16:20 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Fri, 10 Mar 2017 18:33:00 +0000 (19:33 +0100)
tools/lvchange.c
tools/lvconvert.c
tools/lvcreate.c
tools/toollib.c
tools/toollib.h

index d0d67b37e477ab1a9291d288f8181a98af9abd6e..3804041f3768f389ce5827e6da91697002419921 100644 (file)
@@ -627,11 +627,12 @@ static int _lvchange_cache(struct cmd_context *cmd, struct logical_volume *lv)
        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) &&
index 45c5a4920e4a8ba9d30a331876859c8e96187b44..f7210cc5f4826b4054fc1fbeb84e49fdac19c0e5 100644 (file)
@@ -3046,7 +3046,7 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
                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 &&
@@ -3172,6 +3172,7 @@ static int _lvconvert_to_cache_vol(struct cmd_context *cmd,
                                   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;
@@ -3180,7 +3181,7 @@ static int _lvconvert_to_cache_vol(struct cmd_context *cmd,
        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))
@@ -3189,10 +3190,7 @@ static int _lvconvert_to_cache_vol(struct cmd_context *cmd,
        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));
@@ -3814,7 +3812,6 @@ static int _lvconvert_to_cache_vol_single(struct cmd_context *cmd,
        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;
@@ -3863,16 +3860,6 @@ static int _lvconvert_to_cache_vol_single(struct cmd_context *cmd,
                        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) &&
index 63b2c6dce61df2feee9d68e78e90f6c9113ac117..80c97b0c2d44f441e9411c86f1fd3e387b6f5a26 100644 (file)
@@ -633,6 +633,7 @@ static int _read_cache_params(struct cmd_context *cmd,
                return 1;
 
        if (!get_cache_params(cmd,
+                             &lp->chunk_size,
                              &lp->cache_mode,
                              &lp->policy_name,
                              &lp->policy_settings))
index 4d746ea6b7bb7f70d1935ac13a126c1f865fb426..3c0004513cc826d6daefc1938304b3cd9168343e 100644 (file)
@@ -1347,6 +1347,7 @@ static int _validate_cachepool_params(const char *name,
 }
 
 int get_cache_params(struct cmd_context *cmd,
+                    uint32_t *chunk_size,
                     cache_mode_t *cache_mode,
                     const char **name,
                     struct dm_config_tree **settings)
index 7c588fce4527da506d3d47c36de78bb4c0dff257..22ae4913c7e7c9b42e57b170f67beca3ae5bc82b 100644 (file)
@@ -221,6 +221,7 @@ int get_stripe_params(struct cmd_context *cmd, const struct segment_type *segtyp
                      unsigned *stripes_supplied, unsigned *stripe_size_supplied);
 
 int get_cache_params(struct cmd_context *cmd,
+                    uint32_t *chunk_size,
                     cache_mode_t *cache_mode,
                     const char **name,
                     struct dm_config_tree **settings);
This page took 0.046818 seconds and 5 git commands to generate.