From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2431 invoked by alias); 21 Aug 2006 12:04:57 -0000 Received: (qmail 2417 invoked by uid 9447); 21 Aug 2006 12:04:56 -0000 Date: Mon, 21 Aug 2006 12:04:00 -0000 Message-ID: <20060821120456.2415.qmail@sourceware.org> From: agk@sourceware.org To: lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW dmeventd/mirror/dmeventd_mirr ... Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2006-08/txt/msg00018.txt.bz2 List-Id: CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2006-08-21 12:04:55 Modified files: . : WHATS_NEW dmeventd/mirror: dmeventd_mirror.c lib/activate : dev_manager.c lib/filters : filter-sysfs.c lib/misc : lvm-string.c lvm-string.h man : Makefile.in Log message: Add dm_split_words() and dm_split_lvm_name() to libdevmapper. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.428&r2=1.429 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/dmeventd/mirror/dmeventd_mirror.c.diff?cvsroot=lvm2&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.113&r2=1.114 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/filters/filter-sysfs.c.diff?cvsroot=lvm2&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/misc/lvm-string.c.diff?cvsroot=lvm2&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/misc/lvm-string.h.diff?cvsroot=lvm2&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/man/Makefile.in.diff?cvsroot=lvm2&r1=1.16&r2=1.17 --- LVM2/WHATS_NEW 2006/08/18 21:49:19 1.428 +++ LVM2/WHATS_NEW 2006/08/21 12:04:54 1.429 @@ -1,5 +1,6 @@ Version 2.02.10 - ================================== + Move split_words() and split_dm_name() into libdevmapper. Add lvconvert man page. Add mirror options to man pages. Prevent mirror renames. --- LVM2/dmeventd/mirror/dmeventd_mirror.c 2006/07/04 18:57:27 1.7 +++ LVM2/dmeventd/mirror/dmeventd_mirror.c 2006/08/21 12:04:54 1.8 @@ -48,7 +48,7 @@ char *p; int log_argc, num_devs, num_failures=0; - if (max_args <= split_words(params, max_args, args)) { + if (max_args <= dm_split_words(params, max_args, 0, args)) { syslog(LOG_ERR, "Unable to split mirror parameters: Arg list too long"); return -E2BIG; } @@ -121,7 +121,7 @@ if (strlen(device) > 200) return -ENAMETOOLONG; - if (!split_dm_name(mem_pool, device, &vg, &lv, &layer)) { + if (!dm_split_lvm_name(mem_pool, device, &vg, &lv, &layer)) { syslog(LOG_ERR, "Unable to determine VG name from %s", device); return -ENOMEM; --- LVM2/lib/activate/dev_manager.c 2006/08/08 21:20:00 1.113 +++ LVM2/lib/activate/dev_manager.c 2006/08/21 12:04:55 1.114 @@ -912,7 +912,7 @@ name = dm_tree_node_get_name(child); if (name && lvlayer->old_name && *lvlayer->old_name && strcmp(name, lvlayer->old_name)) { - if (!split_dm_name(dm->mem, lvlayer->old_name, &vgname, &lvname, &layer)) { + if (!dm_split_lvm_name(dm->mem, lvlayer->old_name, &vgname, &lvname, &layer)) { log_error("_create_lv_symlinks: Couldn't split up old device name %s", lvlayer->old_name); return 0; } @@ -938,7 +938,7 @@ if (!(uuid = dm_tree_node_get_uuid(child))) continue; - if (!split_dm_name(dm->mem, name, &vgname, &lvname, &layer)) { + if (!dm_split_lvm_name(dm->mem, name, &vgname, &lvname, &layer)) { log_error("_clean_tree: Couldn't split up device name %s.", name); return 0; } --- LVM2/lib/filters/filter-sysfs.c 2006/04/19 15:33:06 1.11 +++ LVM2/lib/filters/filter-sysfs.c 2006/08/21 12:04:55 1.12 @@ -44,7 +44,7 @@ } while (fgets(buffer, sizeof(buffer), fp)) { - if (split_words(buffer, 4, split) == 4 && + if (dm_split_words(buffer, 4, 0, split) == 4 && !strcmp(split[2], "sysfs")) { if (lvm_snprintf(path, len, "%s/%s", split[1], "block") >= 0) { --- LVM2/lib/misc/lvm-string.c 2006/04/28 17:01:07 1.10 +++ LVM2/lib/misc/lvm-string.c 2006/08/21 12:04:55 1.11 @@ -17,8 +17,6 @@ #include "lvm-types.h" #include "lvm-string.h" -#include - /* * On error, up to glibc 2.0.6, snprintf returned -1 if buffer was too small; * From glibc 2.1 it returns number of chars (excl. trailing null) that would @@ -59,47 +57,6 @@ } /* - * consume characters while they match the predicate function. - */ -static char *_consume(char *buffer, int (*fn) (int)) -{ - while (*buffer && fn(*buffer)) - buffer++; - - return buffer; -} - -static int _isword(int c) -{ - return !isspace(c); -} - -/* - * Split buffer into NULL-separated words in argv. - * Returns number of words. - */ -int split_words(char *buffer, unsigned max, char **argv) -{ - unsigned arg; - - for (arg = 0; arg < max; arg++) { - buffer = _consume(buffer, isspace); - if (!*buffer) - break; - - argv[arg] = buffer; - buffer = _consume(buffer, _isword); - - if (*buffer) { - *buffer = '\0'; - buffer++; - } - } - - return arg; -} - -/* * Device layer names are all of the form --, any * other hyphens that appear in these names are quoted with yet * another hyphen. The top layer of any device has no layer @@ -169,47 +126,6 @@ return r; } -/* - * Remove hyphen quoting from a component of a name. - * NULL-terminates the component and returns start of next component. - */ -static char *_unquote(char *component) -{ - char *c = component; - char *o = c; - char *r; - - while (*c) { - if (*(c + 1)) { - if (*c == '-') { - if (*(c + 1) == '-') - c++; - else - break; - } - } - *o = *c; - o++; - c++; - } - - r = (*c) ? c + 1 : c; - *o = '\0'; - - return r; -} - -int split_dm_name(struct dm_pool *mem, const char *dmname, - char **vgname, char **lvname, char **layer) -{ - if (!(*vgname = dm_pool_strdup(mem, dmname))) - return 0; - - _unquote(*layer = _unquote(*lvname = _unquote(*vgname))); - - return 1; -} - int validate_name(const char *n) { register char c; --- LVM2/lib/misc/lvm-string.h 2006/04/19 15:33:06 1.11 +++ LVM2/lib/misc/lvm-string.h 2006/08/21 12:04:55 1.12 @@ -34,14 +34,9 @@ int emit_to_buffer(char **buffer, size_t *size, const char *fmt, ...); -int split_words(char *buffer, unsigned max, char **argv); - char *build_dm_name(struct dm_pool *mem, const char *vg, const char *lv, const char *layer); -int split_dm_name(struct dm_pool *mem, const char *dmname, - char **vgname, char **lvname, char **layer); - int validate_name(const char *n); #endif --- LVM2/man/Makefile.in 2006/08/18 21:49:19 1.16 +++ LVM2/man/Makefile.in 2006/08/21 12:04:55 1.17 @@ -17,7 +17,7 @@ VPATH = @srcdir@ MAN5=lvm.conf.5 -MAN8=lvchange.8 lvconvert.8 lvcreate.8 lvdisplay.8 lvextend.8 lvm.8 +MAN8=lvchange.8 lvconvert.8 lvcreate.8 lvdisplay.8 lvextend.8 lvm.8 \ lvmchange.8 \ lvmdiskscan.8 lvreduce.8 lvremove.8 lvrename.8 lvresize.8 lvs.8 \ lvscan.8 pvchange.8 pvcreate.8 pvdisplay.8 pvmove.8 pvremove.8 \