From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26575 invoked by alias); 8 Feb 2007 17:31:03 -0000 Received: (qmail 26560 invoked by uid 9447); 8 Feb 2007 17:31:03 -0000 Date: Thu, 08 Feb 2007 17:31:00 -0000 Message-ID: <20070208173103.26558.qmail@sourceware.org> From: agk@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW 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: 2007-02/txt/msg00001.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2007-02-08 17:31:03 Modified files: . : WHATS_NEW lib/commands : toolcontext.c Log message: Fix loading of segment_libraries. [gentoo] Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.570&r2=1.571 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/commands/toolcontext.c.diff?cvsroot=lvm2&r1=1.47&r2=1.48 --- LVM2/WHATS_NEW 2007/02/07 13:29:51 1.570 +++ LVM2/WHATS_NEW 2007/02/08 17:31:02 1.571 @@ -1,5 +1,6 @@ Version 2.02.22 - =================================== + Fix loading of segment_libraries. If a PV reappears after it was removed from its VG, make it an orphan. Don't update metadata automatically if VGIDs don't match. Fix some vgreduce --removemissing command line validation. --- LVM2/lib/commands/toolcontext.c 2007/01/25 21:22:30 1.47 +++ LVM2/lib/commands/toolcontext.c 2007/02/08 17:31:02 1.48 @@ -754,7 +754,6 @@ struct config_value *cv; struct segment_type *(*init_segtype_fn) (struct cmd_context *); void *lib; - struct list *sgtl, *tmp; struct segment_type *segtype2; for (cv = cn->v; cv; cv = cv->next) { @@ -781,18 +780,16 @@ segtype->library = lib; list_add(&cmd->segtypes, &segtype->list); - list_iterate_safe(sgtl, tmp, &cmd->segtypes) { - segtype2 = list_item(sgtl, struct segment_type); - if (!strcmp(segtype2->name, segtype->name)) { - log_error("Duplicate segment type %s: " - "unloading shared library %s", - segtype->name, cv->v.str); - list_del(&segtype->list); - segtype->ops->destroy(segtype); - dlclose(lib); - break; - } - + list_iterate_items(segtype2, &cmd->segtypes) { + if ((segtype == segtype2) || + strcmp(segtype2->name, segtype->name)) + continue; + log_error("Duplicate segment type %s: " + "unloading shared library %s", + segtype->name, cv->v.str); + list_del(&segtype->list); + segtype->ops->destroy(segtype); + dlclose(lib); } } }