All of lore.kernel.org
 help / color / mirror / Atom feed
* master - pool: drop create spare on error path
@ 2017-10-30 10:55 Zdenek Kabelac
  0 siblings, 0 replies; only message in thread
From: Zdenek Kabelac @ 2017-10-30 10:55 UTC (permalink / raw)
  To: lvm-devel

Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=90ee7783b4c2b1b13122e6107cebeb28ca30326d
Commit:        90ee7783b4c2b1b13122e6107cebeb28ca30326d
Parent:        52fd66210b120bf1185fbbc91b6bc487d99dd33a
Author:        Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate:    Sat Oct 28 00:10:16 2017 +0200
Committer:     Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Mon Oct 30 11:53:39 2017 +0100

pool: drop create spare on error path

When thin/cache pool creation fails and command created _pmspare,
such volume is now removed on error path.
---
 WHATS_NEW        |    1 +
 tools/lvcreate.c |    7 +++++++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/WHATS_NEW b/WHATS_NEW
index 4d1a6a8..961c7e5 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.176 -
 ===================================
+  Remove created spare LV when creation of thin-pool failed.
   Avoid reading ignored metadata when mda gets used again.
   Fix detection of moved PVs in vgsplit. (2.02.175)
   Ignore --stripes/--stripesize on RAID takeover
diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index 09bbe10..7f86a37 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -1579,6 +1579,7 @@ static int _lvcreate_single(struct cmd_context *cmd, const char *vg_name,
 	struct processing_params *pp = (struct processing_params *) handle->custom_handle;
 	struct lvcreate_params *lp = pp->lp;
 	struct lvcreate_cmdline_params *lcp = pp->lcp;
+	struct logical_volume *spare = vg->pool_metadata_spare_lv;
 	int ret = ECMD_FAILED;
 
 	if (!_read_activation_params(cmd, vg, lp))
@@ -1652,6 +1653,12 @@ static int _lvcreate_single(struct cmd_context *cmd, const char *vg_name,
 
 	ret = ECMD_PROCESSED;
 out:
+	if (ret != ECMD_PROCESSED && !spare && vg->pool_metadata_spare_lv)
+		/* Remove created spare volume for failed pool creation */
+		if (!lvremove_single(cmd, vg->pool_metadata_spare_lv, NULL))
+			log_error("Removal of created spare volume failed. "
+				  "Manual intervention required.");
+
 	return ret;
 }
 



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-10-30 10:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-30 10:55 master - pool: drop create spare on error path Zdenek Kabelac

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.