[dm-devel] [PATCH] multipath: remove callout code

Christophe Varoqui christophe.varoqui at gmail.com
Fri Aug 17 19:58:27 UTC 2012


On ven., 2012-07-27 at 15:54 -0500, Benjamin Marzinski wrote:
> Since nothing is using the callout code anymore, I've removed it.
> 
Applied.

Thanks.

> Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
> ---
>  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>






More information about the dm-devel mailing list