[Cluster-devel] cluster/gnbd/tools/gnbd_import gnbd_import.c
bmarzins at sourceware.org
bmarzins at sourceware.org
Wed Oct 11 22:10:13 UTC 2006
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: bmarzins at sourceware.org 2006-10-11 22:10:13
Modified files:
gnbd/tools/gnbd_import: gnbd_import.c
Log message:
Change the way gnbd notifies multipathd about device changes, to deal with the
new udev.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd/tools/gnbd_import/gnbd_import.c.diff?cvsroot=cluster&r1=1.18&r2=1.19
--- cluster/gnbd/tools/gnbd_import/gnbd_import.c 2006/08/11 15:18:14 1.18
+++ cluster/gnbd/tools/gnbd_import/gnbd_import.c 2006/10/11 22:10:12 1.19
@@ -577,13 +577,11 @@
}
-#define MULTIPATH_SCRIPT "/etc/dev.d/block/multipath.dev"
-void run_multipath_code(int minor_nr, int add)
+#define MULTIPATH_CTL "/sbin/mpath_ctl"
+void stop_mpath_monitoring(int minor_nr)
{
int i_am_parent, fd;
- char *envp[6];
- char devpath[32];
- char devname[32];
+ char args[32];
i_am_parent = daemonize();
if (i_am_parent < 0){
@@ -601,18 +599,10 @@
dup2(fd, 2);
if (fd > 2)
close(fd);
- envp[0] = "HOME=/";
- envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
- envp[2] = (add)? "ACTION=add" : "ACTION=remove";
- snprintf(devpath, 31, "DEVPATH=/block/gnbd%d", minor_nr);
- devpath[31] = '\0';
- envp[3] = devpath;
- snprintf(devname, 31, "DEVNAME=/dev/gnbd%d", minor_nr);
- devname[31] = '\0';
- envp[4] = devname;
- envp[5] = NULL;
- execle(MULTIPATH_SCRIPT, MULTIPATH_SCRIPT, NULL, envp);
- log_verbose("cannot exec %s : %s", MULTIPATH_SCRIPT, strerror(errno));
+ snprintf(args, 31, "remove path gnbd%d", minor_nr);
+ args[31] = '\0';
+ execl(MULTIPATH_CTL, MULTIPATH_CTL, args, NULL);
+ log_verbose("cannot exec %s : %s", MULTIPATH_CTL, strerror(errno));
exit(1);
}
@@ -642,7 +632,7 @@
if (pid > 0)
kill(pid, SIGKILL);
cleanup_device(name, minor, fd);
- run_multipath_code(minor, 0);
+ stop_mpath_monitoring(minor);
close(fd);
}
@@ -1042,7 +1032,7 @@
exit(1);
if (start_receiver(minor_nr))
exit(1);
- run_multipath_code(minor_nr, 1);
+ do_set_sysfs_attr(minor_nr, "block/uevent", "1");
}
ptr++;
}
More information about the Cluster-devel
mailing list