public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
From: wysochanski@sourceware.org
To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org
Subject: LVM2/tools vgsplit.c
Date: Thu, 10 Apr 2008 01:30:00 -0000	[thread overview]
Message-ID: <20080410013022.10906.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	wysochanski@sourceware.org	2008-04-10 01:30:22

Modified files:
	tools          : vgsplit.c 

Log message:
	Add _move_one_lv() helper function for vgsplit.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgsplit.c.diff?cvsroot=lvm2&r1=1.58&r2=1.59

--- LVM2/tools/vgsplit.c	2008/04/09 20:56:06	1.58
+++ LVM2/tools/vgsplit.c	2008/04/10 01:30:22	1.59
@@ -93,6 +93,25 @@
 	return 0;
 }
 
+static int _move_one_lv(struct volume_group *vg_from,
+			struct volume_group *vg_to,
+			struct list *lvh)
+{
+	struct logical_volume *lv;
+
+	lv = list_item(lvh, struct lv_list)->lv;
+	list_del(lvh);
+	list_add(&vg_to->lvs, lvh);
+	
+	if (lv->status & SNAPSHOT) {
+		vg_from->snapshot_count--;
+		vg_to->snapshot_count++;
+	} else {
+		vg_from->lv_count--;
+		vg_to->lv_count++;
+	}
+	return 1;
+}	
 
 static int _move_lvs(struct volume_group *vg_from, struct volume_group *vg_to)
 {
@@ -152,11 +171,8 @@
 			continue;
 
 		/* Move this LV */
-		list_del(lvh);
-		list_add(&vg_to->lvs, lvh);
-
-		vg_from->lv_count--;
-		vg_to->lv_count++;
+		if (!_move_one_lv(vg_from, vg_to, lvh))
+			return 0;
 	}
 
 	/* FIXME Ensure no LVs contain segs pointing at LVs in the other VG */
@@ -201,11 +217,8 @@
 			 */
 			if (_lv_is_in_vg(vg_to, seg->cow) &&
 			    _lv_is_in_vg(vg_to, seg->origin)) {
-				list_del(lvh);
-				list_add(&vg_to->lvs, lvh);
-				
-				vg_from->snapshot_count--;
-				vg_to->snapshot_count++;
+				if (!_move_one_lv(vg_from, vg_to, lvh))
+					return 0;
 			}
 		}
 
@@ -246,11 +259,8 @@
 		}
 
 		if (seg_in == seg->area_count && log_in) {
-			list_del(lvh);
-			list_add(&vg_to->lvs, lvh);
-
-			vg_from->lv_count--;
-			vg_to->lv_count++;
+			if (!_move_one_lv(vg_from, vg_to, lvh))
+				return 0;
 		}
 	}
 


             reply	other threads:[~2008-04-10  1:30 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-10  1:30 wysochanski [this message]
  -- strict thread matches above, loose matches on Subject: below --
2009-09-02 21:27 wysochanski
2009-09-02 21:27 wysochanski
2009-09-02 21:26 wysochanski
2009-09-02 21:26 wysochanski
2009-09-02 21:26 wysochanski
2009-09-02 21:26 wysochanski
2009-09-02 21:25 wysochanski
2009-07-09  5:41 wysochanski
2009-07-08 14:27 wysochanski
2009-07-01 17:04 wysochanski
2009-06-10 11:21 mbroz
2009-06-09 14:31 wysochanski
2008-04-15 14:57 agk
2008-04-10 21:34 wysochanski
2008-04-10 20:02 agk
2008-04-10  2:15 wysochanski
2008-02-29  0:13 wysochanski
2008-01-22  3:49 wysochanski
2008-01-11 20:17 wysochanski
2007-11-15  2:53 agk
2007-07-23 21:10 wysochanski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080410013022.10906.qmail@sourceware.org \
    --to=wysochanski@sourceware.org \
    --cc=lvm-devel@redhat.com \
    --cc=lvm2-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).