public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/lib cache/lvmcache.c config/config.c conf ...
@ 2011-07-18 13:26 mornfall
  0 siblings, 0 replies; only message in thread
From: mornfall @ 2011-07-18 13:26 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mornfall@sourceware.org	2011-07-18 13:26:09

Modified files:
	lib/cache      : lvmcache.c 
	lib/config     : config.c config.h 
	lib/unknown    : unknown.c 

Log message:
	Slightly refactor the config code to allow better reuse (no functional change).

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/cache/lvmcache.c.diff?cvsroot=lvm2&r1=1.111&r2=1.112
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/config/config.c.diff?cvsroot=lvm2&r1=1.97&r2=1.98
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/config/config.h.diff?cvsroot=lvm2&r1=1.33&r2=1.34
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/unknown/unknown.c.diff?cvsroot=lvm2&r1=1.6&r2=1.7

--- LVM2/lib/cache/lvmcache.c	2011/06/01 19:29:32	1.111
+++ LVM2/lib/cache/lvmcache.c	2011/07/18 13:26:08	1.112
@@ -671,8 +671,7 @@
 	/* Build config tree from vgmetadata, if not yet cached */
 	if (!vginfo->cft &&
 	    !(vginfo->cft =
-	      create_config_tree_from_string(fid->fmt->cmd,
-					     vginfo->vgmetadata)))
+	      create_config_tree_from_string(vginfo->vgmetadata)))
 		goto_bad;
 
 	if (!(vg = import_vg_from_config_tree(vginfo->cft, fid)))
--- LVM2/lib/config/config.c	2011/05/24 14:11:39	1.97
+++ LVM2/lib/config/config.c	2011/07/18 13:26:08	1.98
@@ -159,8 +159,7 @@
 	return 1;
 }
 
-struct config_tree *create_config_tree_from_string(struct cmd_context *cmd __attribute__((unused)),
-						   const char *config_settings)
+struct config_tree *create_config_tree_from_string(const char *config_settings)
 {
 	struct cs *c;
 	struct config_tree *cft;
@@ -191,7 +190,7 @@
 int override_config_tree_from_string(struct cmd_context *cmd,
 				     const char *config_settings)
 {
-	if (!(cmd->cft_override = create_config_tree_from_string(cmd,config_settings))) {
+	if (!(cmd->cft_override = create_config_tree_from_string(config_settings))) {
 		log_error("Failed to set overridden configuration entries.");
 		return 1;
 	}
@@ -1364,8 +1363,8 @@
 	return new_cv;
 }
 
-struct config_node *clone_config_node(struct dm_pool *mem, const struct config_node *cn,
-				      int siblings)
+struct config_node *clone_config_node_with_mem(struct dm_pool *mem, const struct config_node *cn,
+					       int siblings)
 {
 	struct config_node *new_cn;
 
@@ -1383,9 +1382,45 @@
 	}
 
 	if ((cn->v && !(new_cn->v = _clone_config_value(mem, cn->v))) ||
-	    (cn->child && !(new_cn->child = clone_config_node(mem, cn->child, 1))) ||
-	    (siblings && cn->sib && !(new_cn->sib = clone_config_node(mem, cn->sib, siblings))))
+	    (cn->child && !(new_cn->child = clone_config_node_with_mem(mem, cn->child, 1))) ||
+	    (siblings && cn->sib && !(new_cn->sib = clone_config_node_with_mem(mem, cn->sib, siblings))))
 		return_NULL; /* 'new_cn' released with mem pool */
 
 	return new_cn;
 }
+
+struct config_node *clone_config_node(struct config_tree *cft, const struct config_node *node, int sib)
+{
+	struct cs *c = (struct cs *) cft;
+	return clone_config_node_with_mem(c->mem, node, sib);
+}
+
+struct config_node *create_config_node(struct config_tree *cft, const char *key)
+{
+	struct cs *c = (struct cs *) cft;
+	struct config_node *cn;
+
+	if (!(cn = _create_node(c->mem))) {
+		log_error("Failed to create config node.");
+		return NULL;
+	}
+	if (!(cn->key = dm_pool_strdup(c->mem, key))) {
+		log_error("Failed to create config node's key.");
+		return NULL;
+	}
+	if (!(cn->v = _create_value(c->mem))) {
+		log_error("Failed to create config node's value.");
+		return NULL;
+	}
+	cn->parent = NULL;
+	cn->v->type = CFG_INT;
+	cn->v->v.i = 0;
+	cn->v->next = NULL;
+	return cn;
+}
+
+struct dm_pool *config_tree_memory(struct config_tree *cft)
+{
+	struct cs *c = (struct cs *) cft;
+	return c->mem;
+}
--- LVM2/lib/config/config.h	2011/02/18 14:08:23	1.33
+++ LVM2/lib/config/config.h	2011/07/18 13:26:08	1.34
@@ -54,8 +54,8 @@
 };
 
 struct config_tree *create_config_tree(const char *filename, int keep_open);
-struct config_tree *create_config_tree_from_string(struct cmd_context *cmd,
-						   const char *config_settings);
+struct config_tree *create_config_tree_from_string(const char *config_settings);
+
 int override_config_tree_from_string(struct cmd_context *cmd,
 				     const char *config_settings);
 void destroy_config_tree(struct config_tree *cft);
@@ -120,6 +120,13 @@
 
 const char *config_parent_name(const struct config_node *n);
 
-struct config_node *clone_config_node(struct dm_pool *mem, const struct config_node *cn,
+struct config_node *clone_config_node_with_mem(struct dm_pool *mem,
+					       const struct config_node *node,
+					       int siblings);
+struct config_node *create_config_node(struct config_tree *cft, const char *key);
+struct config_node *clone_config_node(struct config_tree *cft, const struct config_node *cn,
 				      int siblings);
+
+struct dm_pool *config_tree_memory(struct config_tree *cft);
+
 #endif
--- LVM2/lib/unknown/unknown.c	2011/06/17 14:14:21	1.6
+++ LVM2/lib/unknown/unknown.c	2011/07/18 13:26:09	1.7
@@ -42,7 +42,7 @@
 		if (!strcmp(current->key, "type") || !strcmp(current->key, "start_extent") ||
 		    !strcmp(current->key, "tags") || !strcmp(current->key, "extent_count"))
 			continue;
-		new = clone_config_node(seg->lv->vg->vgmem, current, 0);
+		new = clone_config_node_with_mem(seg->lv->vg->vgmem, current, 0);
 		if (!new)
 			return_0;
 		if (last)


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

only message in thread, other threads:[~2011-07-18 13:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-18 13:26 LVM2/lib cache/lvmcache.c config/config.c conf mornfall

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