Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=93a80018ae8e2f3f5... Commit: 93a80018ae8e2f3f56e56b42237779661c9040b3 Parent: 0b872ce870b753d034da919814c13703606af188 Author: Zdenek Kabelac zkabelac@redhat.com AuthorDate: Wed Jul 2 00:13:32 2014 +0200 Committer: Zdenek Kabelac zkabelac@redhat.com CommitterDate: Wed Jul 2 10:37:52 2014 +0200
lvremove: remove thin volumes on damaged pools
Support remove of thin volumes With --force --force when thin pools is damaged.
This way it's possible to remove thin pool with unrepairable metadata without requiring to manually edit lvm2 metadata.
lvremove -ff vg/pool
removes all thin volumes and pool even when thin pool cannot be activated (to accept removal of thin volumes in kernel metadata) --- WHATS_NEW | 1 + lib/metadata/lv_manip.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW index 846983f..230bdf0 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.108 - ================================= + Support lvremove -ff to remove thin volumes from broken thin pools. Require --yes to skip raid repair prompt. Change makefile %.d generation to handle filename changes without make clean. Fix use of buildir in make pofile. diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index d35a244..537ec30 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -4923,8 +4923,13 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, /* Clear thin pool stacked messages */ if (pool_lv && !pool_has_message(first_seg(pool_lv), lv, 0) && !update_pool_lv(pool_lv, 1)) { - log_error("Failed to update thin pool %s.", pool_lv->name); - return 0; + if (force < DONT_PROMPT_OVERRIDE) { + log_error("Failed to update thin pool %s.", pool_lv->name); + return 0; + } + log_warn("WARNING: Forced to ignoring failure of pool metadata update %s.", + pool_lv->name); + pool_lv = NULL; /* Do not retry */ }
visible = lv_is_visible(lv);
lvm2-commits@lists.fedorahosted.org