public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/lib/metadata metadata-exported.h thin_manip.c
@ 2011-11-03 14:54 zkabelac
  0 siblings, 0 replies; 2+ messages in thread
From: zkabelac @ 2011-11-03 14:54 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac@sourceware.org	2011-11-03 14:53:58

Modified files:
	lib/metadata   : metadata-exported.h thin_manip.c 

Log message:
	Thin genering update_pool_lv function
	
	Function to trigger pool message passing via resume,
	or resize of the pool itself independently on other thins.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata-exported.h.diff?cvsroot=lvm2&r1=1.219&r2=1.220
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/thin_manip.c.diff?cvsroot=lvm2&r1=1.19&r2=1.20

--- LVM2/lib/metadata/metadata-exported.h	2011/10/30 22:01:39	1.219
+++ LVM2/lib/metadata/metadata-exported.h	2011/11/03 14:53:58	1.220
@@ -560,6 +560,8 @@
 
 int detach_pool_messages(struct logical_volume *pool_lv);
 
+int update_pool_lv(struct logical_volume *lv, int activate);
+
 /*
  * Activation options
  */
--- LVM2/lib/metadata/thin_manip.c	2011/11/03 14:38:36	1.19
+++ LVM2/lib/metadata/thin_manip.c	2011/11/03 14:53:58	1.20
@@ -317,3 +317,43 @@
 
 	return 1;
 }
+
+int update_pool_lv(struct logical_volume *lv, int activate)
+{
+	if (!lv_is_thin_pool(lv)) {
+		log_error(INTERNAL_ERROR "Updated LV %s is not pool.", lv->name);
+		return 0;
+	}
+
+	if (activate) {
+		/* If the pool was not yet activated, do it */
+		if (!lv_is_active(lv) &&
+		    !activate_lv_excl(lv->vg->cmd, lv)) {
+			log_error("Failed to activate %s.", lv->name);
+			return 0;
+		}
+		/* If already active, do suspend resume
+		 *
+		 * TODO: Support pool resume without suspend,
+		 * since the real suspend is not needed here
+		 */
+		else if (!suspend_lv(lv->vg->cmd, lv)) {
+			log_error("Failed to suspend %s.", lv->name);
+			return 0;
+		} else if (!resume_lv(lv->vg->cmd, lv)) {
+			log_error("Failed to resume %s.", lv->name);
+			return 0;
+		}
+	}
+
+	if (!dm_list_empty(&first_seg(lv)->thin_messages)) {
+		dm_list_init(&first_seg(lv)->thin_messages);
+
+		if (!vg_write(lv->vg) || !vg_commit(lv->vg))
+			return_0;
+
+		backup(lv->vg);
+	}
+
+	return 1;
+}


^ permalink raw reply	[flat|nested] 2+ messages in thread

* LVM2/lib/metadata metadata-exported.h thin_manip.c
@ 2011-11-03 14:57 zkabelac
  0 siblings, 0 replies; 2+ messages in thread
From: zkabelac @ 2011-11-03 14:57 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac@sourceware.org	2011-11-03 14:57:04

Modified files:
	lib/metadata   : metadata-exported.h thin_manip.c 

Log message:
	Thin removing unused detach_pool_messages

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata-exported.h.diff?cvsroot=lvm2&r1=1.220&r2=1.221
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/thin_manip.c.diff?cvsroot=lvm2&r1=1.20&r2=1.21

--- LVM2/lib/metadata/metadata-exported.h	2011/11/03 14:53:58	1.220
+++ LVM2/lib/metadata/metadata-exported.h	2011/11/03 14:57:04	1.221
@@ -558,8 +558,6 @@
 uint64_t extents_from_size(struct cmd_context *cmd, uint64_t size,
 			   uint32_t extent_size);
 
-int detach_pool_messages(struct logical_volume *pool_lv);
-
 int update_pool_lv(struct logical_volume *lv, int activate);
 
 /*
--- LVM2/lib/metadata/thin_manip.c	2011/11/03 14:53:58	1.20
+++ LVM2/lib/metadata/thin_manip.c	2011/11/03 14:57:04	1.21
@@ -148,26 +148,6 @@
 	return 1;
 }
 
-int detach_pool_messages(struct logical_volume *pool_lv)
-{
-	if (!lv_is_thin_pool(pool_lv)) {
-		log_error(INTERNAL_ERROR "LV %s is not a thin pool.",
-			  pool_lv->name);
-		return 0;
-	}
-
-	if (!dm_list_empty(&first_seg(pool_lv)->thin_messages)) {
-		dm_list_init(&first_seg(pool_lv)->thin_messages);
-
-		if (!vg_write(pool_lv->vg) || !vg_commit(pool_lv->vg))
-			return_0;
-
-		backup(pool_lv->vg);
-	}
-
-	return 1;
-}
-
 struct lv_segment *find_pool_seg(const struct lv_segment *seg)
 {
 	struct lv_segment *pool_seg;


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-11-03 14:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-03 14:54 LVM2/lib/metadata metadata-exported.h thin_manip.c zkabelac
2011-11-03 14:57 zkabelac

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).