From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2499 invoked by alias); 12 Mar 2012 14:35:59 -0000 Received: (qmail 2336 invoked by uid 9737); 12 Mar 2012 14:35:58 -0000 Date: Mon, 12 Mar 2012 14:35:00 -0000 Message-ID: <20120312143558.2334.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/lib/commands toolcontext.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2012-03/txt/msg00091.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2012-03-12 14:35:58 Modified files: lib/commands : toolcontext.c Log message: Simplify error path code for filter initialization Use 'int' counter. Use 'bad' with goto_bad macro. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/commands/toolcontext.c.diff?cvsroot=lvm2&r1=1.154&r2=1.155 --- LVM2/lib/commands/toolcontext.c 2012/03/12 14:15:04 1.154 +++ LVM2/lib/commands/toolcontext.c 2012/03/12 14:35:57 1.155 @@ -730,7 +730,7 @@ static struct dev_filter *_init_filter_components(struct cmd_context *cmd) { - unsigned nr_filt = 0; + int nr_filt = 0; const struct dm_config_node *cn; struct dev_filter *filters[MAX_FILTERS]; struct dev_filter *composite; @@ -761,14 +761,14 @@ else if (!(filters[nr_filt++] = regex_filter_create(cn->v))) { log_error("Failed to create regex device filter"); - goto err; + goto bad; } /* device type filter. Required. */ cn = find_config_tree_node(cmd, "devices/types"); if (!(filters[nr_filt++] = lvm_type_filter_create(cmd->proc_dir, cn))) { log_error("Failed to create lvm type filter"); - goto err; + goto bad; } /* md component filter. Optional, non-critical. */ @@ -790,17 +790,14 @@ if (nr_filt == 1) return filters[0]; - if (!(composite = composite_filter_create(nr_filt, filters))) { - stack; - nr_filt++; /* compensate skip NULL */ - goto err; - } + if (!(composite = composite_filter_create(nr_filt, filters))) + goto_bad; return composite; -err: - nr_filt--; /* skip NULL */ - while (nr_filt-- > 0) +bad: + while (--nr_filt >= 0) filters[nr_filt]->destroy(filters[nr_filt]); + return NULL; }