[lvm-devel] master - cleanup: stack usage

Zdenek Kabelac zkabelac at fedoraproject.org
Mon Jul 1 21:13:34 UTC 2013


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=47419d21acec64a4d23968f6991a1d976673859f
Commit:        47419d21acec64a4d23968f6991a1d976673859f
Parent:        b90450b8a082b349297eac23f50cf4ac2e0ed8f6
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Mon Jul 1 11:27:11 2013 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Jul 1 23:11:14 2013 +0200

cleanup: stack usage

Shortening code with macros return_0, return_NULL.
Add some missing stack prints in error paths.
---
 daemons/dmeventd/libdevmapper-event.c |   12 ++++--------
 lib/locking/cluster_locking.c         |    3 +--
 libdm/libdm-deptree.c                 |   12 ++++--------
 libdm/regex/parse_rx.c                |   12 ++++--------
 libdm/regex/ttree.c                   |   12 ++++--------
 tools/lvconvert.c                     |   22 ++++++++--------------
 tools/lvmcmdline.c                    |    4 ++--
 tools/lvrename.c                      |   20 ++++++++------------
 tools/reporter.c                      |    2 +-
 tools/vgcfgbackup.c                   |    2 +-
 tools/vgchange.c                      |    6 ++----
 tools/vgsplit.c                       |    3 +--
 12 files changed, 40 insertions(+), 70 deletions(-)

diff --git a/daemons/dmeventd/libdevmapper-event.c b/daemons/dmeventd/libdevmapper-event.c
index c692a88..72f0f92 100644
--- a/daemons/dmeventd/libdevmapper-event.c
+++ b/daemons/dmeventd/libdevmapper-event.c
@@ -614,10 +614,8 @@ int dm_event_register_handler(const struct dm_event_handler *dmevh)
 	struct dm_task *dmt;
 	struct dm_event_daemon_message msg = { 0, 0, NULL };
 
-	if (!(dmt = _get_device_info(dmevh))) {
-		stack;
-		return 0;
-	}
+	if (!(dmt = _get_device_info(dmevh)))
+		return_0;
 
 	uuid = dm_task_get_uuid(dmt);
 
@@ -643,10 +641,8 @@ int dm_event_unregister_handler(const struct dm_event_handler *dmevh)
 	struct dm_task *dmt;
 	struct dm_event_daemon_message msg = { 0, 0, NULL };
 
-	if (!(dmt = _get_device_info(dmevh))) {
-		stack;
-		return 0;
-	}
+	if (!(dmt = _get_device_info(dmevh)))
+		return_0;
 
 	uuid = dm_task_get_uuid(dmt);
 
diff --git a/lib/locking/cluster_locking.c b/lib/locking/cluster_locking.c
index 1350d18..89d7307 100644
--- a/lib/locking/cluster_locking.c
+++ b/lib/locking/cluster_locking.c
@@ -516,8 +516,7 @@ static int decode_lock_type(const char *response)
 	else if (!strcmp(response, "PR"))
 		return LCK_PREAD;
 
-	stack;
-	return 0;
+	return_0;
 }
 
 #ifdef CLUSTER_LOCKING_INTERNAL
diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c
index ba415b2..fae9445 100644
--- a/libdm/libdm-deptree.c
+++ b/libdm/libdm-deptree.c
@@ -672,10 +672,8 @@ static int _children_suspended(struct dm_tree_node *node,
 		if (dlink->node->presuspend_node == node)
 			continue;
 
-		if (!(dinfo = dm_tree_node_get_info(dlink->node))) {
-			stack;	/* FIXME Is this normal? */
-			return 0;
-		}
+		if (!(dinfo = dm_tree_node_get_info(dlink->node)))
+			return_0;	/* FIXME Is this normal? */
 
 		if (!dinfo->suspended)
 			return 0;
@@ -920,10 +918,8 @@ static int _node_has_closed_parents(struct dm_tree_node *node,
 		if (!_uuid_prefix_matches(uuid, uuid_prefix, uuid_prefix_len))
 			continue;
 
-		if (!(dinfo = dm_tree_node_get_info(dlink->node))) {
-			stack;	/* FIXME Is this normal? */
-			return 0;
-		}
+		if (!(dinfo = dm_tree_node_get_info(dlink->node)))
+			return_0;	/* FIXME Is this normal? */
 
 		/* Refresh open_count */
 		if (!_info_by_dev(dinfo->major, dinfo->minor, 1, &info, NULL, NULL, NULL) ||
diff --git a/libdm/regex/parse_rx.c b/libdm/regex/parse_rx.c
index ea3922f..0ad033a 100644
--- a/libdm/regex/parse_rx.c
+++ b/libdm/regex/parse_rx.c
@@ -303,10 +303,8 @@ static struct rx_node *_term(struct parse_sp *ps)
 
 	switch (ps->type) {
 	case 0:
-		if (!(n = _node(ps->mem, CHARSET, NULL, NULL))) {
-			stack;
-			return NULL;
-		}
+		if (!(n = _node(ps->mem, CHARSET, NULL, NULL)))
+			return_NULL;
 
 		dm_bit_copy(n->charset, ps->charset);
 		_rx_get_token(ps);	/* match charset */
@@ -354,10 +352,8 @@ static struct rx_node *_closure_term(struct parse_sp *ps)
 			return l;
 		}
 
-		if (!n) {
-			stack;
-			return NULL;
-		}
+		if (!n)
+			return_NULL;
 
 		_rx_get_token(ps);
 		l = n;
diff --git a/libdm/regex/ttree.c b/libdm/regex/ttree.c
index 00b371e..9c3cc65 100644
--- a/libdm/regex/ttree.c
+++ b/libdm/regex/ttree.c
@@ -87,10 +87,8 @@ int ttree_insert(struct ttree *tt, unsigned int *key, void *data)
 		count++;
 
 		while (count--) {
-			if (!(*c = _tree_node(tt->mem, k))) {
-				stack;
-				return 0;
-			}
+			if (!(*c = _tree_node(tt->mem, k)))
+				return_0;
 
 			if (count) {
 				k = *key++;
@@ -107,10 +105,8 @@ struct ttree *ttree_create(struct dm_pool *mem, unsigned int klen)
 {
 	struct ttree *tt;
 
-	if (!(tt = dm_pool_zalloc(mem, sizeof(*tt)))) {
-		stack;
-		return NULL;
-	}
+	if (!(tt = dm_pool_zalloc(mem, sizeof(*tt))))
+		return_NULL;
 
 	tt->klen = klen;
 	tt->mem = mem;
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index ac84aa6..650b1be 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -485,10 +485,8 @@ static int _read_params(struct lvconvert_params *lp, struct cmd_context *cmd,
 		}
 
 		/* Default is never striped, regardless of existing LV configuration. */
-		if (!get_stripe_params(cmd, &lp->stripes, &lp->stripe_size)) {
-			stack;
-			return 0;
-		}
+		if (!get_stripe_params(cmd, &lp->stripes, &lp->stripe_size))
+			return_0;
 
 		lp->segtype = get_segtype_from_string(cmd, arg_str_value(cmd, type_ARG, find_config_tree_str(cmd, global_mirror_segtype_default_CFG)));
 		if (!lp->segtype)
@@ -1283,10 +1281,8 @@ static int _lvconvert_mirrors_aux(struct cmd_context *cmd,
 		 * linear-to-mirror conversion.
 		 */
 		if (!_lv_update_log_type(cmd, lp, lv,
-					 operable_pvs, new_log_count)) {
-			stack;
-			return 0;
-		}
+					 operable_pvs, new_log_count))
+			return_0;
 
 		/* Insert a temporary layer for syncing,
 		 * only if the original lv is using disk log. */
@@ -1314,8 +1310,8 @@ static int _lvconvert_mirrors_aux(struct cmd_context *cmd,
 					  "and dmsetup may be required.");
 				return 0;
 			}
-			stack;
-			return 0;
+
+			return_0;
 		}
 		if (seg->log_lv)
 			lv->status |= CONVERTING;
@@ -1356,10 +1352,8 @@ out:
 	 */
 	if ((lv->status & MIRRORED) && (old_log_count != new_log_count)) {
 		if (!_lv_update_log_type(cmd, lp, lv,
-					 operable_pvs, new_log_count)) {
-			stack;
-			return 0;
-		}
+					 operable_pvs, new_log_count))
+			return_0;
 	}
 
 out_skip_log_convert:
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 9c50918..827b072 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -1123,7 +1123,7 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
 
 	if (!init_locking(locking_type, cmd, arg_count(cmd, sysinit_ARG))) {
 		ret = ECMD_FAILED;
-		goto out;
+		goto_out;
 	}
 
 	ret = cmd->command->fn(cmd, argc, argv);
@@ -1539,7 +1539,7 @@ int lvm2_main(int argc, char **argv)
 		}
 		_exec_lvm1_command(argv);
 		ret = ECMD_FAILED;
-		goto out;
+		goto_out;
 	}
 #ifdef READLINE_SUPPORT
 	if (!alias && argc == 1) {
diff --git a/tools/lvrename.c b/tools/lvrename.c
index a2182e8..5b1f50b 100644
--- a/tools/lvrename.c
+++ b/tools/lvrename.c
@@ -16,7 +16,6 @@
 #include "tools.h"
 #include "lvm-types.h"
 
-
 /*
  * lvrename command implementation.
  * Check arguments and call lv_rename() to execute the request.
@@ -27,10 +26,9 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv)
 	char *lv_name_old, *lv_name_new;
 	const char *vg_name, *vg_name_new, *vg_name_old;
 	char *st;
-	int r = ECMD_FAILED;
-
-	struct volume_group *vg = NULL;
+	struct volume_group *vg;
 	struct lv_list *lvl;
+	int r = ECMD_FAILED;
 
 	if (argc == 3) {
 		vg_name = skip_dev_dir(cmd, argv[0], NULL);
@@ -90,7 +88,7 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv)
 
 	if (!validate_name(lv_name_new)) {
 		log_error("New logical volume name \"%s\" is invalid",
-		     lv_name_new);
+			  lv_name_new);
 		return EINVALID_CMD_LINE;
 	}
 
@@ -109,32 +107,30 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv)
 	if (!(lvl = find_lv_in_vg(vg, lv_name_old))) {
 		log_error("Existing logical volume \"%s\" not found in "
 			  "volume group \"%s\"", lv_name_old, vg_name);
-		goto error;
+		goto bad;
 	}
 
 	if (lvl->lv->status & (RAID_IMAGE | RAID_META)) {
 		log_error("Cannot rename a RAID %s directly",
 			  (lvl->lv->status & RAID_IMAGE) ? "image" :
 			  "metadata area");
-		r = ECMD_FAILED;
-		goto error;
+		goto bad;
 	}
 
 	if (lv_is_raid_with_tracking(lvl->lv)) {
 		log_error("Cannot rename %s while it is tracking a split image",
 			  lvl->lv->name);
-		r = ECMD_FAILED;
-		goto error;
+		goto bad;
 	}
 
 	if (!lv_rename(cmd, lvl->lv, lv_name_new))
-		goto error;
+		goto_bad;
 
 	log_print_unless_silent("Renamed \"%s\" to \"%s\" in volume group \"%s\"",
 				lv_name_old, lv_name_new, vg_name);
 
 	r = ECMD_PROCESSED;
-error:
+bad:
 	unlock_and_release_vg(cmd, vg, vg_name);
 	return r;
 }
diff --git a/tools/reporter.c b/tools/reporter.c
index e8ecf98..6e78355 100644
--- a/tools/reporter.c
+++ b/tools/reporter.c
@@ -98,7 +98,7 @@ static int _pvsegs_sub_single(struct cmd_context *cmd,
 	if (!report_object(handle, vg, seg ? seg->lv : &_free_logical_volume, pvseg->pv,
 			   seg ? : &_free_lv_segment, pvseg)) {
 		ret = ECMD_FAILED;
-                goto_out;
+		goto_out;
 	}
 
  out:
diff --git a/tools/vgcfgbackup.c b/tools/vgcfgbackup.c
index bee1b04..7cf19bc 100644
--- a/tools/vgcfgbackup.c
+++ b/tools/vgcfgbackup.c
@@ -65,7 +65,6 @@ static int vg_backup_single(struct cmd_context *cmd, const char *vg_name,
 		if (vg_read_error(vg) == FAILED_INCONSISTENT) {
 			log_error("No backup taken: specify filename with -f "
 				  "to backup an inconsistent VG");
-			stack;
 			return ECMD_FAILED;
 		}
 
@@ -76,6 +75,7 @@ static int vg_backup_single(struct cmd_context *cmd, const char *vg_name,
 	}
 
 	log_print_unless_silent("Volume group \"%s\" successfully backed up.", vg_name);
+
 	return ECMD_PROCESSED;
 }
 
diff --git a/tools/vgchange.c b/tools/vgchange.c
index 28747f6..6831597 100644
--- a/tools/vgchange.c
+++ b/tools/vgchange.c
@@ -246,10 +246,8 @@ static int _vgchange_refresh(struct cmd_context *cmd, struct volume_group *vg)
 {
 	log_verbose("Refreshing volume group \"%s\"", vg->name);
 
-	if (!vg_refresh_visible(cmd, vg)) {
-		stack;
-		return 0;
-	}
+	if (!vg_refresh_visible(cmd, vg))
+		return_0;
 
 	return 1;
 }
diff --git a/tools/vgsplit.c b/tools/vgsplit.c
index a204b26..ed31a57 100644
--- a/tools/vgsplit.c
+++ b/tools/vgsplit.c
@@ -298,8 +298,7 @@ static struct volume_group *_vgsplit_to(struct cmd_context *cmd,
 
 		if (vg_read_error(vg_to)) {
 			release_vg(vg_to);
-			stack;
-			return NULL;
+			return_NULL;
 		}
 
 	} else if (vg_read_error(vg_to) == SUCCESS) {




More information about the lvm-devel mailing list