]> sourceware.org Git - lvm2.git/commitdiff
vdo: correct vdo header size
authorZdenek Kabelac <zkabelac@redhat.com>
Wed, 17 Jan 2024 16:13:26 +0000 (17:13 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Wed, 17 Jan 2024 16:30:10 +0000 (17:30 +0100)
Previous patch that introduced support for thinpool with vdo
not correctly handled header size - as this part is not fully usable
yet.  We are going to try to use the 0, but current state of code is not
yet compliant to this logic so keep vdo_header_size during conversion
and alos correctly pass through virtual_extents to vdo formating.

lib/metadata/metadata-exported.h
lib/metadata/vdo_manip.c
tools/lvconvert.c

index 55eb71cbd03953ef70bd554a183d4f435a16e15a..8c7bd4583db04d3a3d2573ac5d5f5cef8141c704 100644 (file)
@@ -980,6 +980,7 @@ struct vdo_convert_params {
        struct dm_vdo_target_params vdo_params; /* VDO parameters for vdoformat */
        const char *lv_name;
        uint32_t virtual_extents;
+       uint64_t header_size;
        activation_change_t activate;
        int do_zero;
        int do_wipe_signatures; /* Used for wiping VDO backend volume */
index 32568fae7f20f9efc25e1239b8f6f5fc2dff4f6d..c8eebe55a297038d01ef4f84786952e9eba8132d 100644 (file)
@@ -521,7 +521,7 @@ struct logical_volume *convert_vdo_lv(struct logical_volume *lv,
                }
        }
 
-       if (!convert_vdo_pool_lv(lv, &vcp->vdo_params, &lv->le_count, 1, 0))
+       if (!convert_vdo_pool_lv(lv, &vcp->vdo_params, &lvc.virtual_extents, vcp->do_zero, vcp->header_size))
                return_NULL;
 
         /* Create VDO LV with the name, we just release above */
index e50fa666d646b2f06ef0b4aec7da06ac49d6a1bc..52da38319afc3c89abb9a8cba28c2f0ef435a92d 100644 (file)
@@ -5479,7 +5479,6 @@ static int _lvconvert_to_vdopool_single(struct cmd_context *cmd,
        struct volume_group *vg = lv->vg;
        struct logical_volume *vdo_lv;
        const char *vg_name = NULL;
-       uint64_t vdo_pool_header_size;
        struct vdo_convert_params vcp = {
                .activate = CHANGE_AEY,
                .lv_name = arg_str_value(cmd, name_ARG, NULL),
@@ -5498,7 +5497,7 @@ static int _lvconvert_to_vdopool_single(struct cmd_context *cmd,
        } else
                vcp.lv_name = "lvol%d";
 
-       if (!fill_vdo_target_params(cmd, &vcp.vdo_params, &vdo_pool_header_size, vg->profile))
+       if (!fill_vdo_target_params(cmd, &vcp.vdo_params, &vcp.header_size, vg->profile))
                goto_out;
 
        if (!get_vdo_settings(cmd, &vcp.vdo_params, NULL))
This page took 0.041281 seconds and 5 git commands to generate.