SOURCES: multipath-tools-branch.diff - 2008.11.25 GIT
baggins
baggins at pld-linux.org
Tue Nov 25 23:29:34 CET 2008
Author: baggins Date: Tue Nov 25 22:29:34 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- 2008.11.25 GIT
---- Files affected:
SOURCES:
multipath-tools-branch.diff (1.1 -> 1.2)
---- Diffs:
================================================================
Index: SOURCES/multipath-tools-branch.diff
diff -u SOURCES/multipath-tools-branch.diff:1.1 SOURCES/multipath-tools-branch.diff:1.2
--- SOURCES/multipath-tools-branch.diff:1.1 Wed Nov 14 00:13:32 2007
+++ SOURCES/multipath-tools-branch.diff Tue Nov 25 23:29:28 2008
@@ -1,6 +1,335 @@
-diff -ur -x .git multipath-tools-0.4.8/kpartx/devmapper.c multipath-tools/kpartx/devmapper.c
---- multipath-tools-0.4.8/kpartx/devmapper.c 2007-08-03 00:05:37.000000000 +0300
-+++ multipath-tools/kpartx/devmapper.c 2007-11-14 01:07:15.579282644 +0200
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..5ef5aec
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,9 @@
++*.o
++.dotest
++*~
++*.so
++*.a
++*.gz
++kpartx
++multipath
++multipathd
+diff --git a/Makefile b/Makefile
+index ee554e7..54be0a5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,7 @@
+ # Makefile
+ #
+ # Copyright (C) 2003 Christophe Varoqui, <christophe.varoqui at free.fr>
+-
+-BUILD = glibc
++#
+
+ #
+ # Try to supply the linux kernel headers.
+@@ -20,7 +19,13 @@ endif
+ export KRNLSRC
+ export KRNLOBJ
+
+-BUILDDIRS = $(shell find . -mindepth 2 -name Makefile -exec dirname {} \; | grep -vE '^lib|/\.')
++BUILDDIRS = \
++ libmultipath \
++ libmultipath/prioritizers \
++ libmultipath/checkers \
++ multipath \
++ multipathd \
++ kpartx
+
+ ifeq ($(MULTIPATH_VERSION),)
+ VERSION = $(shell basename ${PWD} | cut -d'-' -f3)
+diff --git a/Makefile.inc b/Makefile.inc
+index 7e2d4e6..3e5bca0 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -13,31 +13,22 @@ ifeq ($(TOPDIR),)
+ TOPDIR = ..
+ endif
+
+-ifeq ($(strip $(BUILD)),klibc)
+- CC = klcc
+- klibcdir = /usr/lib/klibc
+- libdm = $(klibcdir)/lib/libdevmapper.a
+-endif
+-
+ prefix =
+ exec_prefix = $(prefix)
+ bindir = $(exec_prefix)/sbin
+ libudevdir = ${prefix}/lib/udev
+-checkersdir = $(TOPDIR)/libcheckers
+ multipathdir = $(TOPDIR)/libmultipath
+ mandir = $(prefix)/usr/share/man/man8
+ man5dir = $(prefix)/usr/share/man/man5
+ rcdir = $(prefix)/etc/init.d
++libdir = $(prefix)/lib/multipath
+
+ GZIP = /bin/gzip -9 -c
+-
+-CHECKERSLIB = $(checkersdir)/libcheckers
+-MULTIPATHLIB = $(multipathdir)/libmultipath
+-
+-INSTALL_PROGRAM = install -s
++INSTALL_PROGRAM = install
+
+ OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes
+-CFLAGS = $(OPTFLAGS)
++CFLAGS = $(OPTFLAGS) -fPIC
++SHARED_FLAGS = -shared
+
+ %.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+diff --git a/devmap_name/Makefile b/devmap_name/Makefile
+deleted file mode 100644
+index d8d8b09..0000000
+--- a/devmap_name/Makefile
++++ /dev/null
+@@ -1,42 +0,0 @@
+-# Makefile
+-#
+-# Copyright (C) 2003 Christophe Varoqui, <christophe.varoqui at free.fr>
+-BUILD = glibc
+-
+-include ../Makefile.inc
+-
+-OBJS = devmap_name.o
+-
+-ifeq ($(strip $(BUILD)),klibc)
+- OBJS += $(libdm)
+-else
+- LDFLAGS = -ldevmapper
+-endif
+-
+-EXEC = devmap_name
+-
+-all: $(BUILD)
+-
+-prepare:
+- rm -f core *.o *.gz
+-
+-glibc: prepare $(OBJS)
+- $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+-
+-klibc: prepare $(OBJS)
+- $(CC) -static -o $(EXEC) $(OBJS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+-
+-install: $(EXEC) $(EXEC).8
+- install -d $(DESTDIR)$(bindir)
+- install -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+- install -d $(DESTDIR)$(mandir)
+- install -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+-
+-uninstall:
+- rm $(DESTDIR)$(bindir)/$(EXEC)
+- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
+-
+-clean:
+- rm -f core *.o $(EXEC) *.gz
+diff --git a/devmap_name/devmap_name.8 b/devmap_name/devmap_name.8
+deleted file mode 100644
+index 86d0931..0000000
+--- a/devmap_name/devmap_name.8
++++ /dev/null
+@@ -1,30 +0,0 @@
+-.TH DEVMAP_NAME 8 "July 2006" "" "Linux Administrator's Manual"
+-.SH NAME
+-devmap_name \- Query device-mapper name
+-.SH SYNOPSIS
+-.BI devmap_name " major minor"
+-.SH DESCRIPTION
+-.B devmap_name
+-queries the device-mapper for the name for the device
+-specified by
+-.I major
+-and
+-.I minor
+-number.
+-.br
+-.B devmap_name
+-can be called from
+-.B udev
+-by the following rule in
+-.IR /etc/udev/udev.rules :
+-.sp
+-.nf
+-KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", \\
+- NAME="%k", SYMLINK="%c"
+-.fi
+-.SH "SEE ALSO"
+-.BR udev (8),
+-.BR dmsetup (8)
+-.SH AUTHORS
+-.B devmap_name
+-was developed by Christophe Varoqui, <christophe.varoqui at free.fr> and others.
+diff --git a/devmap_name/devmap_name.c b/devmap_name/devmap_name.c
+deleted file mode 100644
+index 525c348..0000000
+--- a/devmap_name/devmap_name.c
++++ /dev/null
+@@ -1,88 +0,0 @@
+-/*
+- * Copyright (c) 2004, 2005 Christophe Varoqui
+- */
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <ctype.h>
+-#include <unistd.h>
+-#include <linux/kdev_t.h>
+-#include <libdevmapper.h>
+-
+-static void usage(char * progname) {
+- fprintf(stderr, "usage : %s [-t target type] dev_t\n", progname);
+- fprintf(stderr, "where dev_t is either 'major minor' or 'major:minor'\n");
+- exit(1);
+-}
+-
+-int dm_target_type(int major, int minor, char *type)
+-{
+- struct dm_task *dmt;
+- void *next = NULL;
+- uint64_t start, length;
+- char *target_type = NULL;
+- char *params;
+- int r = 1;
+-
+- if (!(dmt = dm_task_create(DM_DEVICE_STATUS)))
+- return 1;
+-
+- if (!dm_task_set_major(dmt, major) ||
+- !dm_task_set_minor(dmt, minor))
+- goto bad;
+-
+- dm_task_no_open_count(dmt);
+-
+- if (!dm_task_run(dmt))
+- goto bad;
+-
+- if (!type)
+- goto good;
+-
+- do {
+- next = dm_get_next_target(dmt, next, &start, &length,
+- &target_type, ¶ms);
+- if (target_type && strcmp(target_type, type))
+- goto bad;
+- } while (next);
+-
+-good:
+- printf("%s\n", dm_task_get_name(dmt));
+- r = 0;
+-bad:
+- dm_task_destroy(dmt);
+- return r;
+-}
+-
+-int main(int argc, char **argv)
+-{
+- int c;
+- int major, minor;
+- char *target_type = NULL;
+-
+- while ((c = getopt(argc, argv, "t:")) != -1) {
+- switch (c) {
+- case 't':
+- target_type = optarg;
+- break;
+- default:
+- usage(argv[0]);
+- return 1;
+- break;
+- }
+- }
+-
+- /* sanity check */
+- if (optind == argc - 2) {
+- major = atoi(argv[argc - 2]);
+- minor = atoi(argv[argc - 1]);
+- } else if (optind != argc - 1 ||
+- 2 != sscanf(argv[argc - 1], "%i:%i", &major, &minor))
+- usage(argv[0]);
+-
+- if (dm_target_type(major, minor, target_type))
+- return 1;
+-
+- return 0;
+-}
+-
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index b4cca6c..21e4ad4 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -2,49 +2,30 @@
+ #
+ # Copyright (C) 2003 Christophe Varoqui, <christophe.varoqui at free.fr>
+ #
+-BUILD=glibc
+-
+ include ../Makefile.inc
+
+ CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+
+-ifeq ($(strip $(BUILD)),klibc)
+- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o gpt.o crc32.o \
+- lopart.o xstrncpy.o devmapper.o dasd.o mac.o sun.o \
+- $(MULTIPATHLIB)-$(BUILD).a $(libdm)
+-else
+- LDFLAGS = -ldevmapper
+- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
+- gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o
+-endif
+-
++LDFLAGS = -ldevmapper
++OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
++ gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o
+ EXEC = kpartx
+
+-all: $(BUILD)
+-
+-prepare:
+- rm -f core *.o *.gz
++all: $(EXEC)
+
+-glibc: prepare $(OBJS)
++$(EXEC): $(OBJS)
+ $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
+ $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+
+-klibc: prepare $(OBJS)
+- $(CC) -static -o $(EXEC) $(CRT0) $(OBJS) $(KLIBC) $(LIBGCC)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+-
+-$(MULTIPATHLIB)-$(BUILD).a:
+- make -C $(multipathdir) BUILD=$(BUILD)
+-
+ install: $(EXEC) $(EXEC).8
+- install -d $(DESTDIR)$(bindir)
++ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
+- install -d $(DESTDIR)$(libudevdir)
+- install -m 755 kpartx_id $(DESTDIR)$(libudevdir)
+- install -d $(DESTDIR)/etc/udev/rules.d
+- install -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
+- install -d $(DESTDIR)$(mandir)
+- install -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
++ $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
++ $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
++ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
++ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+
+ uninstall:
+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
+diff --git a/kpartx/devmapper.c b/kpartx/devmapper.c
+index 6e3e198..893d6dd 100644
+--- a/kpartx/devmapper.c
++++ b/kpartx/devmapper.c
@@ -4,10 +4,12 @@
#include <stdio.h>
#include <stdlib.h>
@@ -14,7 +343,7 @@
#define UUID_PREFIX "part%d-"
#define MAX_PREFIX_LEN 8
-@@ -72,10 +74,10 @@
+@@ -72,10 +74,10 @@ dm_simplecmd (int task, const char *name) {
extern int
dm_addmap (int task, const char *name, const char *target,
@@ -27,9 +356,10 @@
if (!(dmt = dm_task_create (task)))
return 0;
-diff -ur -x .git multipath-tools-0.4.8/kpartx/devmapper.h multipath-tools/kpartx/devmapper.h
---- multipath-tools-0.4.8/kpartx/devmapper.h 2007-08-03 00:05:37.000000000 +0300
-+++ multipath-tools/kpartx/devmapper.h 2007-11-14 01:07:15.579282644 +0200
+diff --git a/kpartx/devmapper.h b/kpartx/devmapper.h
+index ccdbead..2bd27d2 100644
+--- a/kpartx/devmapper.h
++++ b/kpartx/devmapper.h
@@ -1,7 +1,7 @@
int dm_prereq (char *, int, int, int);
int dm_simplecmd (int, const char *);
@@ -40,9 +370,10 @@
int dm_map_present (char *);
char * dm_mapname(int major, int minor);
dev_t dm_get_first_dep(char *devname);
-diff -ur -x .git multipath-tools-0.4.8/kpartx/gpt.c multipath-tools/kpartx/gpt.c
---- multipath-tools-0.4.8/kpartx/gpt.c 2007-08-03 00:05:37.000000000 +0300
-+++ multipath-tools/kpartx/gpt.c 2007-11-14 01:07:15.579282644 +0200
+diff --git a/kpartx/gpt.c b/kpartx/gpt.c
+index dc846ca..047a829 100644
+--- a/kpartx/gpt.c
++++ b/kpartx/gpt.c
@@ -36,6 +36,7 @@
#include <errno.h>
#include <endian.h>
@@ -70,7 +401,7 @@
struct blkdev_ioctl_param {
unsigned int block;
-@@ -143,20 +152,14 @@
+@@ -143,20 +152,14 @@ get_sector_size(int filedes)
static uint64_t
_get_num_sectors(int filedes)
{
@@ -95,7 +426,7 @@
}
/************************************************************
-@@ -193,7 +196,7 @@
+@@ -193,7 +196,7 @@ last_lba(int filedes)
sectors = 1;
}
@@ -104,7 +435,7 @@
}
-@@ -220,17 +223,22 @@
+@@ -220,17 +223,22 @@ read_lba(int fd, uint64_t lba, void *buffer, size_t bytes)
{
int sector_size = get_sector_size(fd);
off_t offset = lba * sector_size;
@@ -128,7 +459,7 @@
bytesread = read_lastoddsector(fd, lba, buffer, bytes);
}
return bytesread;
-@@ -505,7 +513,8 @@
+@@ -505,7 +513,8 @@ find_valid_gpt(int fd, gpt_header ** gpt, gpt_entry ** ptes)
if (!gpt || !ptes)
return 0;
@@ -138,9 +469,24 @@
good_pgpt = is_gpt_valid(fd, GPT_PRIMARY_PARTITION_TABLE_LBA,
&pgpt, &pptes);
if (good_pgpt) {
-diff -ur -x .git multipath-tools-0.4.8/kpartx/kpartx.c multipath-tools/kpartx/kpartx.c
---- multipath-tools-0.4.8/kpartx/kpartx.c 2007-08-03 00:05:37.000000000 +0300
-+++ multipath-tools/kpartx/kpartx.c 2007-11-14 01:07:15.579282644 +0200
+diff --git a/kpartx/kpartx.8 b/kpartx/kpartx.8
+index 87b07ce..c61f312 100644
+--- a/kpartx/kpartx.8
++++ b/kpartx/kpartx.8
+@@ -26,6 +26,9 @@ List partition mappings that would be added -a
+ .B \-p
+ set device name-partition number delimiter
+ .TP
++.B \-g
++force GUID partition table (GPT)
++.TP
+ .B \-v
+ Operate verbosely
+ .SH "SEE ALSO"
+diff --git a/kpartx/kpartx.c b/kpartx/kpartx.c
+index dbe2ee2..237d958 100644
+--- a/kpartx/kpartx.c
++++ b/kpartx/kpartx.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <string.h>
@@ -149,7 +495,78 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <ctype.h>
-@@ -366,16 +367,16 @@
+@@ -82,7 +83,7 @@ initpts(void)
+ addpts("sun", read_sun_pt);
+ }
+
+-static char short_opts[] = "ladgvnp:t:";
++static char short_opts[] = "ladgvp:t:";
+
+ /* Used in gpt.c */
+ int force_gpt=0;
+@@ -94,6 +95,7 @@ usage(void) {
+ printf("\t-d del partition devmappings\n");
+ printf("\t-l list partitions devmappings that would be added by -a\n");
+ printf("\t-p set device name-partition number delimiter\n");
++ printf("\t-g force GUID partition table (GPT)\n");
+ printf("\t-v verbose\n");
+ return 1;
+ }
+@@ -187,8 +189,7 @@ main(int argc, char **argv){
+ struct slice all;
+ struct pt *ptp;
+ enum action what = LIST;
+- char *p, *type, *diskdevice, *device, *progname;
+- int lower, upper;
++ char *type, *diskdevice, *device, *progname;
+ int verbose = 0;
+ char partname[PARTNAME_SIZE], params[PARTNAME_SIZE + 16];
+ char * loopdev = NULL;
+@@ -202,7 +203,6 @@ main(int argc, char **argv){
+ initpts();
+ init_crc32();
+
+- lower = upper = 0;
+ type = device = diskdevice = NULL;
+ memset(&all, 0, sizeof(all));
+ memset(&partname, 0, sizeof(partname));
+@@ -239,14 +239,6 @@ main(int argc, char **argv){
+ case 'v':
+ verbose = 1;
+ break;
+- case 'n':
+- p = optarg;
+- lower = atoi(p);
+- if ((p[1] == '-') && p[2])
+- upper = atoi(p+2);
+- else
+- upper = lower;
+- break;
+ case 'p':
+ delim = optarg;
+ break;
+@@ -265,7 +257,7 @@ main(int argc, char **argv){
+ }
+
+ if (dm_prereq(DM_TARGET, 0, 0, 0) && (what == ADD || what == DELETE)) {
+- fprintf(stderr, "device mapper prerequisites not met\n");
++ fprintf(stderr, "device mapper prerequisites not met\n");
+ exit(1);
+ }
+
+@@ -331,10 +323,9 @@ main(int argc, char **argv){
+ perror(device);
+ exit(1);
+ }
+- if (!lower)
+- lower = 1;
+
+ /* add/remove partitions to the kernel devmapper tables */
++ int r = 0;
+ for (i = 0; i < ptct; i++) {
+ ptp = &pts[i];
+
+@@ -366,16 +357,16 @@ main(int argc, char **argv){
slices[j].minor = m++;
@@ -170,7 +587,7 @@
int k = slices[j].container - 1;
if (slices[j].size == 0)
-@@ -387,9 +388,9 @@
+@@ -387,9 +378,9 @@ main(int argc, char **argv){
slices[j].minor = m++;
start = slices[j].start - slices[k].start;
@@ -182,7 +599,38 @@
slices[k].minor, start);
c--;
}
-@@ -448,8 +449,8 @@
+@@ -401,7 +392,7 @@ main(int argc, char **argv){
+ break;
+
+ case DELETE:
+- for (j = 0; j < n; j++) {
++ for (j = n-1; j >= 0; j--) {
+ if (safe_sprintf(partname, "%s%s%d",
+ mapname, delim, j+1)) {
+ fprintf(stderr, "partname too small\n");
+@@ -412,9 +403,10 @@ main(int argc, char **argv){
+ if (!slices[j].size || !dm_map_present(partname))
+ continue;
+
+- if (!dm_simplecmd(DM_DEVICE_REMOVE, partname))
++ if (!dm_simplecmd(DM_DEVICE_REMOVE, partname)) {
++ r++;
+ continue;
+-
++ }
+ if (verbose)
+ printf("del devmap : %s\n", partname);
+ }
+@@ -431,7 +423,7 @@ main(int argc, char **argv){
+ break;
+
+ case ADD:
+- for (j=0, c = 0; j<n; j++) {
++ for (j = 0, c = 0; j < n; j++) {
+ if (slices[j].size == 0)
+ continue;
+
+@@ -448,8 +440,8 @@ main(int argc, char **argv){
}
strip_slash(partname);
@@ -193,7 +641,30 @@
fprintf(stderr, "params too small\n");
exit(1);
}
-@@ -468,7 +469,7 @@
+@@ -457,18 +449,23 @@ main(int argc, char **argv){
+ op = (dm_map_present(partname) ?
+ DM_DEVICE_RELOAD : DM_DEVICE_CREATE);
+
+- dm_addmap(op, partname, DM_TARGET, params,
+- slices[j].size, uuid, j+1);
+-
+- if (op == DM_DEVICE_RELOAD)
+- dm_simplecmd(DM_DEVICE_RESUME,
+- partname);
+-
++ if (!dm_addmap(op, partname, DM_TARGET, params,
++ slices[j].size, uuid, j+1)) {
++ fprintf(stderr, "create/reload failed on %s\n",
++ partname);
++ r++;
++ }
++ if (op == DM_DEVICE_RELOAD &&
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/multipath-tools-branch.diff?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list