[lvm-devel] master - vgchange: vdo support
Zdenek Kabelac
zkabelac at sourceware.org
Mon Jul 9 13:35:39 UTC 2018
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=12213445b5f86155665ed6f027082e93c4f6cf85
Commit: 12213445b5f86155665ed6f027082e93c4f6cf85
Parent: 7b8aa4af57a8064ea3fa29355283aada2dac0db0
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Sun Jul 1 12:03:23 2018 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Jul 9 15:29:16 2018 +0200
vgchange: vdo support
Support vgchange usage with VDO segtype.
Also changing extent size need small update for vdo virtual extent.
TODO: API needs enhancements so it's not about adding ifs() everywhere.
---
lib/metadata/vg.c | 5 +++++
tools/vgchange.c | 7 ++++++-
2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/lib/metadata/vg.c b/lib/metadata/vg.c
index 75a054f..20c2aec 100644
--- a/lib/metadata/vg.c
+++ b/lib/metadata/vg.c
@@ -504,6 +504,11 @@ int vg_set_extent_size(struct volume_group *vg, uint32_t new_extent_size)
new_extent_size))
return_0;
+ if (!_recalc_extents(&seg->vdo_pool_virtual_extents, lv->name,
+ " virtual extents", old_extent_size,
+ new_extent_size))
+ return_0;
+
/* foreach area */
for (s = 0; s < seg->area_count; s++) {
switch (seg_type(seg, s)) {
diff --git a/tools/vgchange.c b/tools/vgchange.c
index c444c30..fa0fd53 100644
--- a/tools/vgchange.c
+++ b/tools/vgchange.c
@@ -107,6 +107,9 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd, struct volume_group *vg,
if (lv_is_mirror_image(lv) || lv_is_mirror_log(lv))
continue;
+ if (lv_is_vdo_pool(lv))
+ continue;
+
if (lv_activation_skip(lv, activate, arg_is_set(cmd, ignoreactivationskip_ARG)))
continue;
@@ -219,7 +222,9 @@ int vgchange_activate(struct cmd_context *cmd, struct volume_group *vg,
if ((lv_open = lvs_in_vg_opened(vg))) {
dm_list_iterate_items(lvl, &vg->lvs) {
- if (lv_is_visible(lvl->lv) && !lv_check_not_in_use(lvl->lv, 1)) {
+ if (lv_is_visible(lvl->lv) &&
+ !lv_is_vdo_pool(lvl->lv) && // FIXME: API skip flag missing
+ !lv_check_not_in_use(lvl->lv, 1)) {
log_error("Can't deactivate volume group \"%s\" with %d open logical volume(s)",
vg->name, lv_open);
return 0;
More information about the lvm-devel
mailing list