All of lore.kernel.org
 help / color / mirror / Atom feed
* master - pvmove: remove unusued code
@ 2017-11-15 20:00 Zdenek Kabelac
  0 siblings, 0 replies; only message in thread
From: Zdenek Kabelac @ 2017-11-15 20:00 UTC (permalink / raw)
  To: lvm-devel

Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=0f0dc1a2a5f779fbdae7bddd12c3e56397636833
Commit:        0f0dc1a2a5f779fbdae7bddd12c3e56397636833
Parent:        b978f505ff05c3581ccc633442b04c5d391add04
Author:        Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate:    Fri Nov 10 21:48:33 2017 +0100
Committer:     Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Wed Nov 15 21:00:29 2017 +0100

pvmove: remove unusued code

Support for snapshot and cache LVs should now work.
Remove protection rejecting pvmove for them.
---
 lib/locking/locking.c |   61 -------------------------------------------
 lib/locking/locking.h |    4 ---
 tools/pvmove.c        |   68 -------------------------------------------------
 3 files changed, 0 insertions(+), 133 deletions(-)

diff --git a/lib/locking/locking.c b/lib/locking/locking.c
index acf3327..c68d4c7 100644
--- a/lib/locking/locking.c
+++ b/lib/locking/locking.c
@@ -371,67 +371,6 @@ int lock_vol(struct cmd_context *cmd, const char *vol, uint32_t flags, const str
 	return 1;
 }
 
-/* Unlock list of LVs */
-int resume_lvs(struct cmd_context *cmd, struct dm_list *lvs)
-{
-	struct lv_list *lvl;
-	int r = 1;
-
-	dm_list_iterate_items(lvl, lvs)
-		if (!resume_lv(cmd, lvl->lv)) {
-			r = 0;
-			stack;
-		}
-
-	return r;
-}
-
-/* Unlock and revert list of LVs */
-int revert_lvs(struct cmd_context *cmd, struct dm_list *lvs)
-{
-	struct lv_list *lvl;
-	int r = 1;
-
-	dm_list_iterate_items(lvl, lvs)
-		if (!revert_lv(cmd, lvl->lv)) {
-			r = 0;
-			stack;
-		}
-
-	return r;
-}
-/*
- * Lock a list of LVs.
- * On failure to lock any LV, calls vg_revert() if vg_to_revert is set and 
- * then unlocks any LVs on the list already successfully locked.
- */
-int suspend_lvs(struct cmd_context *cmd, struct dm_list *lvs,
-		struct volume_group *vg_to_revert)
-{
-	struct lv_list *lvl;
-
-	dm_list_iterate_items(lvl, lvs) {
-		if (!suspend_lv(cmd, lvl->lv)) {
-			log_error("Failed to suspend %s", display_lvname(lvl->lv));
-			if (vg_to_revert)
-				vg_revert(vg_to_revert);
-			/*
-			 * FIXME Should be
-			 * 	dm_list_uniterate(lvh, lvs, &lvl->list) {
-			 *	lvl = dm_list_item(lvh, struct lv_list);
-			 * but revert would need fixing to use identical tree deps first.
-			 */
-			dm_list_iterate_items(lvl, lvs)
-				if (!revert_lv(cmd, lvl->lv))
-					stack;
-
-			return 0;
-		}
-	}
-
-	return 1;
-}
-
 /*
  * First try to activate exclusively locally.
  * Then if the VG is clustered and the LV is not yet active (e.g. due to 
diff --git a/lib/locking/locking.h b/lib/locking/locking.h
index 4b5490e..47841ed 100644
--- a/lib/locking/locking.h
+++ b/lib/locking/locking.h
@@ -262,10 +262,6 @@ int sync_dev_names(struct cmd_context* cmd);
 
 /* Process list of LVs */
 struct volume_group;
-int suspend_lvs(struct cmd_context *cmd, struct dm_list *lvs,
-		struct volume_group *vg_to_revert);
-int resume_lvs(struct cmd_context *cmd, struct dm_list *lvs);
-int revert_lvs(struct cmd_context *cmd, struct dm_list *lvs);
 int activate_lvs(struct cmd_context *cmd, struct dm_list *lvs);
 
 #endif
diff --git a/tools/pvmove.c b/tools/pvmove.c
index ff36b55..7bf1713 100644
--- a/tools/pvmove.c
+++ b/tools/pvmove.c
@@ -303,32 +303,6 @@ static int _sub_lv_of(struct logical_volume *lv, const char *lv_name)
 	return _sub_lv_of(seg->lv, lv_name);
 }
 
-/*
- * parent_lv_is_cache_type
- *
- * FIXME: This function can be removed when 'pvmove' is supported for
- *        cache types.
- *
- * If this LV is below a cache LV (at any depth), return 1.
- */
-static int _parent_lv_is_cache_type(struct logical_volume *lv)
-{
-	struct lv_segment *seg;
-
-	/* Sub-LVs only ever have one segment using them */
-	if (dm_list_size(&lv->segs_using_this_lv) != 1)
-		return 0;
-
-	if (!(seg = get_only_segment_using_this_lv(lv)))
-		return_0;
-
-	if (lv_is_cache_type(seg->lv))
-		return 1;
-
-	/* Continue up the tree */
-	return _parent_lv_is_cache_type(seg->lv);
-}
-
 /* Create new LV with mirror segments for the required copies */
 static struct logical_volume *_set_up_pvmove_lv(struct cmd_context *cmd,
 						struct volume_group *vg,
@@ -450,48 +424,6 @@ static struct logical_volume *_set_up_pvmove_lv(struct cmd_context *cmd,
 		if (!lv_is_on_pvs(lv, source_pvl))
 			continue;
 
-		if (lv_is_cache_type(lv)) {
-			log_print_unless_silent("Skipping %s LV, %s.",
-						lv_is_cache(lv) ? "cache" :
-						lv_is_cache_pool(lv) ?
-						"cache-pool" : "cache-related",
-						lv->name);
-			lv_skipped = 1;
-			continue;
-		}
-
-		if (_parent_lv_is_cache_type(lv)) {
-			log_print_unless_silent("Skipping %s because a parent"
-						" is of cache type.", lv->name);
-			lv_skipped = 1;
-			continue;
-		}
-
-		/*
-		 * If the VG is clustered, we are unable to handle
-		 * snapshots, origins, thin types, RAID or mirror
-		 */
-		if ((vg_is_clustered(vg) || is_lockd_type(vg->lock_type)) &&
-		    (lv_is_origin(lv) || lv_is_cow(lv) ||
-		     lv_is_thin_type(lv) || lv_is_raid_type(lv))) {
-			log_print_unless_silent("Skipping %s LV %s.",
-						lv_is_origin(lv) ? "origin" :
-						lv_is_cow(lv) ?
-						"snapshot-related" :
-						lv_is_thin_volume(lv) ? "thin" :
-						lv_is_thin_pool(lv) ?
-						"thin-pool" :
-						lv_is_thin_type(lv) ?
-						"thin-related" :
-						seg_is_raid(first_seg(lv)) ?
-						"RAID" :
-						lv_is_raid_type(lv) ?
-						"RAID-related" : "",
-						lv->name);
-			lv_skipped = 1;
-			continue;
-		}
-
 		seg = first_seg(lv);
 		if (seg_is_raid(seg) || seg_is_mirrored(seg) ||
 		    lv_is_thin_volume(lv) || lv_is_thin_pool(lv)) {



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

only message in thread, other threads:[~2017-11-15 20:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-15 20:00 master - pvmove: remove unusued code 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.