device-mapper-multipath/0001-RH-remove_callout.patch
Benjamin Marzinski 91daccef68 Updated to latest upstream 0.4.9 code : multipath-tools-120613.tgz
(git commit id: cb0f7127ba90ab5e8e71fc534a0a16cdbe96a88f)
Add 0001-RH-remove_callout.patch
  * multipath no longer uses the getuid callout.  It now gets the
    wwid from the udev database or the environment variables
Add 0004-RH-fix-cciss-names.patch
  * convert cciss device names from cciss/cXdY to sysfs style cciss!cXdY
Split 0009-RH-add-find-multipaths.patch into 0002-RH-add-wwids-file.patch
      and 0010-RH-add-find-multipaths.patch
Add 0016-RH-change-configs.patch
  * default fast_io_fail to 5 and don't set the path selector in the
    builtin configs.
Resolves: bz #831978
2012-06-28 12:41:03 -05:00

280 lines
6.0 KiB
Diff

---
libmultipath/Makefile | 2
libmultipath/callout.c | 217 -----------------------------------------------
libmultipath/callout.h | 7 -
libmultipath/discovery.c | 1
multipathd/main.c | 1
5 files changed, 1 insertion(+), 227 deletions(-)
Index: multipath-tools-120518/libmultipath/Makefile
===================================================================
--- multipath-tools-120518.orig/libmultipath/Makefile
+++ multipath-tools-120518/libmultipath/Makefile
@@ -9,7 +9,7 @@ DEVLIB = libmultipath.so
LIBS = $(DEVLIB).$(SONAME)
LIBDEPS = -lpthread -ldl -ldevmapper -ludev
-OBJS = memory.o parser.o vector.o devmapper.o callout.o \
+OBJS = memory.o parser.o vector.o devmapper.o \
hwtable.o blacklist.o util.o dmparser.o config.o \
structs.o discovery.o propsel.o dict.o \
pgpolicies.o debug.o regex.o defaults.o uevent.o \
Index: multipath-tools-120518/libmultipath/callout.c
===================================================================
--- multipath-tools-120518.orig/libmultipath/callout.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Source: copy of the udev package source file
- *
- * Copyrights of the source file apply
- * Copyright (c) 2004 Christophe Varoqui
- */
-#include <stdio.h>
-#include <sys/stat.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <sys/wait.h>
-#include <errno.h>
-
-#include "checkers.h"
-#include "vector.h"
-#include "structs.h"
-#include "util.h"
-#include "debug.h"
-
-int execute_program(char *path, char *value, int len)
-{
- int retval;
- int count;
- int status;
- int fds[2], null_fd;
- pid_t pid;
- char *pos;
- char arg[CALLOUT_MAX_SIZE];
- int argc = sizeof(arg) / 2;
- char *argv[argc + 1];
- int i;
-
- i = 0;
-
- if (strchr(path, ' ')) {
- strlcpy(arg, path, sizeof(arg));
- pos = arg;
- while (pos != NULL && i < argc) {
- if (pos[0] == '\'') {
- /* don't separate if in apostrophes */
- pos++;
- argv[i] = strsep(&pos, "\'");
- while (pos[0] == ' ')
- pos++;
- } else {
- argv[i] = strsep(&pos, " ");
- }
- i++;
- }
- } else {
- argv[i++] = path;
- }
- argv[i] = NULL;
-
- retval = pipe(fds);
-
- if (retval != 0) {
- condlog(0, "error creating pipe for callout: %s", strerror(errno));
- return -1;
- }
-
- pid = fork();
-
- switch(pid) {
- case 0:
- /* child */
- close(STDOUT_FILENO);
-
- /* dup write side of pipe to STDOUT */
- if (dup(fds[1]) < 0)
- return -1;
-
- /* Ignore writes to stderr */
- null_fd = open("/dev/null", O_WRONLY);
- if (null_fd > 0) {
- close(STDERR_FILENO);
- dup(null_fd);
- close(null_fd);
- }
-
- retval = execv(argv[0], argv);
- condlog(0, "error execing %s : %s", argv[0], strerror(errno));
- exit(-1);
- case -1:
- condlog(0, "fork failed: %s", strerror(errno));
- close(fds[0]);
- close(fds[1]);
- return -1;
- default:
- /* parent reads from fds[0] */
- close(fds[1]);
- retval = 0;
- i = 0;
- while (1) {
- count = read(fds[0], value + i, len - i-1);
- if (count <= 0)
- break;
-
- i += count;
- if (i >= len-1) {
- condlog(0, "not enough space for response from %s", argv[0]);
- retval = -1;
- break;
- }
- }
-
- if (count < 0) {
- condlog(0, "no response from %s", argv[0]);
- retval = -1;
- }
-
- if (i > 0 && value[i-1] == '\n')
- i--;
- value[i] = '\0';
-
- wait(&status);
- close(fds[0]);
-
- retval = -1;
- if (WIFEXITED(status)) {
- status = WEXITSTATUS(status);
- if (status == 0)
- retval = 0;
- else
- condlog(0, "%s exitted with %d", argv[0], status);
- }
- else if (WIFSIGNALED(status))
- condlog(0, "%s was terminated by signal %d", argv[0], WTERMSIG(status));
- else
- condlog(0, "%s terminated abnormally", argv[0]);
- }
- return retval;
-}
-
-extern int
-apply_format (char * string, char * cmd, struct path * pp)
-{
- char * pos;
- char * dst;
- char * p;
- char * q;
- int len;
- int myfree;
-
- if (!string)
- return 1;
-
- if (!cmd)
- return 1;
-
- dst = cmd;
- p = dst;
- pos = strchr(string, '%');
- myfree = CALLOUT_MAX_SIZE;
-
- if (!pos) {
- strcpy(dst, string);
- return 0;
- }
-
- len = (int) (pos - string) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", string);
- p += len - 1;
- pos++;
-
- switch (*pos) {
- case 'n':
- len = strlen(pp->dev) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", pp->dev);
- for (q = p; q < p + len; q++) {
- if (q && *q == '!')
- *q = '/';
- }
- p += len - 1;
- break;
- case 'd':
- len = strlen(pp->dev_t) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", pp->dev_t);
- p += len - 1;
- break;
- default:
- break;
- }
- pos++;
-
- if (!*pos)
- return 0;
-
- len = strlen(pos) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", pos);
- condlog(3, "reformated callout = %s", dst);
- return 0;
-}
-
Index: multipath-tools-120518/libmultipath/callout.h
===================================================================
--- multipath-tools-120518.orig/libmultipath/callout.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _CALLOUT_H
-#define _CALLOUT_H
-
-int execute_program(char *, char *, int);
-int apply_format (char *, char *, struct path *);
-
-#endif /* _CALLOUT_H */
Index: multipath-tools-120518/libmultipath/discovery.c
===================================================================
--- multipath-tools-120518.orig/libmultipath/discovery.c
+++ multipath-tools-120518/libmultipath/discovery.c
@@ -20,7 +20,6 @@
#include "structs.h"
#include "config.h"
#include "blacklist.h"
-#include "callout.h"
#include "debug.h"
#include "propsel.h"
#include "sg_include.h"
Index: multipath-tools-120518/multipathd/main.c
===================================================================
--- multipath-tools-120518.orig/multipathd/main.c
+++ multipath-tools-120518/multipathd/main.c
@@ -35,7 +35,6 @@
#include <hwtable.h>
#include <defaults.h>
#include <structs.h>
-#include <callout.h>
#include <blacklist.h>
#include <structs_vec.h>
#include <dmparser.h>