-# Add CMAN to build system
-diff -urN -p linux-2.6.7/Makefile linux/Makefile
---- linux-2.6.7/Makefile 2004-06-16 13:19:37.000000000 +0800
-+++ linux/Makefile 2004-06-17 14:55:06.000000000 +0800
-@@ -418,7 +418,7 @@ all: vmlinux
+diff -urN linux-2.6.7clean/arch/alpha/Kconfig linux-2.6.7/arch/alpha/Kconfig
+--- linux-2.6.7clean/arch/alpha/Kconfig 2004-07-05 10:44:04.000000000 +0100
++++ linux-2.6.7/arch/alpha/Kconfig 2004-07-05 10:42:50.000000000 +0100
+@@ -698,3 +698,4 @@
- # Objects we will link into vmlinux / subdirs we need to visit
- init-y := init/
--drivers-y := drivers/ sound/
-+drivers-y := drivers/ sound/ cluster/
- net-y := net/
- libs-y := lib/
- core-y := usr/
-diff -urN -p linux-2.6.7/arch/alpha/Kconfig linux/arch/alpha/Kconfig
---- linux-2.6.7/arch/alpha/Kconfig 2004-06-16 13:19:44.000000000 +0800
-+++ linux/arch/alpha/Kconfig 2004-06-17 14:55:06.000000000 +0800
-@@ -698,3 +698,4 @@ source "crypto/Kconfig"
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/arm/Kconfig linux-2.6.7/arch/arm/Kconfig
+--- linux-2.6.7clean/arch/arm/Kconfig 2004-07-05 10:44:04.000000000 +0100
++++ linux-2.6.7/arch/arm/Kconfig 2004-07-05 10:50:40.000000000 +0100
+@@ -814,3 +814,4 @@
source "lib/Kconfig"
+source "cluster/Kconfig"
-diff -urN -p linux-2.6.7/arch/i386/Kconfig linux/arch/i386/Kconfig
---- linux-2.6.7/arch/i386/Kconfig 2004-06-16 13:18:59.000000000 +0800
-+++ linux/arch/i386/Kconfig 2004-06-17 14:55:06.000000000 +0800
-@@ -1315,6 +1315,8 @@ source "crypto/Kconfig"
+diff -urN linux-2.6.7clean/arch/arm26/Kconfig linux-2.6.7/arch/arm26/Kconfig
+--- linux-2.6.7clean/arch/arm26/Kconfig 2004-07-05 10:43:54.000000000 +0100
++++ linux-2.6.7/arch/arm26/Kconfig 2004-07-05 10:51:42.000000000 +0100
+@@ -333,3 +333,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/cris/Kconfig linux-2.6.7/arch/cris/Kconfig
+--- linux-2.6.7clean/arch/cris/Kconfig 2004-07-05 10:44:04.000000000 +0100
++++ linux-2.6.7/arch/cris/Kconfig 2004-07-05 10:50:30.000000000 +0100
+@@ -216,3 +216,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/i386/Kconfig linux-2.6.7/arch/i386/Kconfig
+--- linux-2.6.7clean/arch/i386/Kconfig 2004-07-05 10:44:04.000000000 +0100
++++ linux-2.6.7/arch/i386/Kconfig 2004-07-05 10:42:50.000000000 +0100
+@@ -1315,6 +1315,8 @@
source "lib/Kconfig"
config X86_SMP
bool
depends on SMP && !X86_VOYAGER
-diff -urN -p linux-2.6.7/arch/parisc/Kconfig linux/arch/parisc/Kconfig
---- linux-2.6.7/arch/parisc/Kconfig 2004-06-16 13:19:36.000000000 +0800
-+++ linux/arch/parisc/Kconfig 2004-06-17 14:55:06.000000000 +0800
-@@ -229,3 +229,4 @@ source "crypto/Kconfig"
+diff -urN linux-2.6.7clean/arch/ia64/Kconfig linux-2.6.7/arch/ia64/Kconfig
+--- linux-2.6.7clean/arch/ia64/Kconfig 2004-07-05 10:44:04.000000000 +0100
++++ linux-2.6.7/arch/ia64/Kconfig 2004-07-05 10:49:31.000000000 +0100
+@@ -503,3 +503,5 @@
+ source "security/Kconfig"
+
+ source "crypto/Kconfig"
++
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/m68k/Kconfig linux-2.6.7/arch/m68k/Kconfig
+--- linux-2.6.7clean/arch/m68k/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/m68k/Kconfig 2004-07-05 10:49:11.000000000 +0100
+@@ -696,3 +696,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/mips/Kconfig linux-2.6.7/arch/mips/Kconfig
+--- linux-2.6.7clean/arch/mips/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/mips/Kconfig 2004-07-05 10:48:56.000000000 +0100
+@@ -1651,3 +1651,5 @@
+ source "crypto/Kconfig"
+
+ source "lib/Kconfig"
++
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/parisc/Kconfig linux-2.6.7/arch/parisc/Kconfig
+--- linux-2.6.7clean/arch/parisc/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/parisc/Kconfig 2004-07-05 10:42:50.000000000 +0100
+@@ -229,3 +229,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/ppc/Kconfig linux-2.6.7/arch/ppc/Kconfig
+--- linux-2.6.7clean/arch/ppc/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/ppc/Kconfig 2004-07-05 10:48:34.000000000 +0100
+@@ -1281,3 +1281,5 @@
+ source "security/Kconfig"
+
+ source "crypto/Kconfig"
++
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/ppc64/Kconfig linux-2.6.7/arch/ppc64/Kconfig
+--- linux-2.6.7clean/arch/ppc64/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/ppc64/Kconfig 2004-07-05 10:48:43.000000000 +0100
+@@ -443,3 +443,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/s390/Kconfig linux-2.6.7/arch/s390/Kconfig
+--- linux-2.6.7clean/arch/s390/Kconfig 2004-07-05 10:44:02.000000000 +0100
++++ linux-2.6.7/arch/s390/Kconfig 2004-07-05 10:48:22.000000000 +0100
+@@ -431,3 +431,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/sh/Kconfig linux-2.6.7/arch/sh/Kconfig
+--- linux-2.6.7clean/arch/sh/Kconfig 2004-07-05 10:43:55.000000000 +0100
++++ linux-2.6.7/arch/sh/Kconfig 2004-07-05 10:48:12.000000000 +0100
+@@ -798,3 +798,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/arch/sparc/Kconfig linux-2.6.7/arch/sparc/Kconfig
+--- linux-2.6.7clean/arch/sparc/Kconfig 2004-07-05 10:43:55.000000000 +0100
++++ linux-2.6.7/arch/sparc/Kconfig 2004-07-05 10:47:47.000000000 +0100
+@@ -456,3 +456,4 @@
source "lib/Kconfig"
+source "cluster/Kconfig"
-diff -urN -p linux-2.6.7/arch/sparc64/Kconfig linux/arch/sparc64/Kconfig
---- linux-2.6.7/arch/sparc64/Kconfig 2004-06-16 13:19:52.000000000 +0800
-+++ linux/arch/sparc64/Kconfig 2004-06-17 14:55:06.000000000 +0800
-@@ -713,3 +713,4 @@ source "crypto/Kconfig"
+diff -urN linux-2.6.7clean/arch/sparc64/Kconfig linux-2.6.7/arch/sparc64/Kconfig
+--- linux-2.6.7clean/arch/sparc64/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/sparc64/Kconfig 2004-07-05 10:42:50.000000000 +0100
+@@ -713,3 +713,4 @@
source "lib/Kconfig"
+source "cluster/Kconfig"
-diff -urN -p linux-2.6.7/cluster/Kconfig linux/cluster/Kconfig
---- linux-2.6.7/cluster/Kconfig 1970-01-01 07:30:00.000000000 +0730
-+++ linux/cluster/Kconfig 2004-06-17 14:55:06.000000000 +0800
+diff -urN linux-2.6.7clean/arch/um/Kconfig linux-2.6.7/arch/um/Kconfig
+--- linux-2.6.7clean/arch/um/Kconfig 2004-07-05 10:44:02.000000000 +0100
++++ linux-2.6.7/arch/um/Kconfig 2004-07-05 10:47:29.000000000 +0100
+@@ -194,6 +194,8 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
++
+ menu "SCSI support"
+
+ config SCSI
+diff -urN linux-2.6.7clean/arch/x86_64/Kconfig linux-2.6.7/arch/x86_64/Kconfig
+--- linux-2.6.7clean/arch/x86_64/Kconfig 2004-07-05 10:44:10.000000000 +0100
++++ linux-2.6.7/arch/x86_64/Kconfig 2004-07-05 10:46:26.000000000 +0100
+@@ -505,3 +505,4 @@
+
+ source "lib/Kconfig"
+
++source "cluster/Kconfig"
+diff -urN linux-2.6.7clean/cluster/cman/Makefile linux-2.6.7/cluster/cman/Makefile
+--- linux-2.6.7clean/cluster/cman/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.7/cluster/cman/Makefile 2004-07-05 10:42:50.000000000 +0100
+@@ -0,0 +1,6 @@
++cman-objs := cnxman.o config.o membership.o proc.o\
++ sm_barrier.o sm_control.o sm_daemon.o sm_joinleave.o\
++ sm_membership.o sm_message.o sm_misc.o sm_recover.o sm_services.o \
++ sm_user.o
++
++obj-$(CONFIG_CLUSTER) := cman.o
+diff -urN linux-2.6.7clean/cluster/Kconfig linux-2.6.7/cluster/Kconfig
+--- linux-2.6.7clean/cluster/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.7/cluster/Kconfig 2004-07-05 10:42:50.000000000 +0100
@@ -0,0 +1,13 @@
+menu "Cluster Support"
+
+ for those other subsystems.
+
+endmenu
-diff -urN -p linux-2.6.7/cluster/Makefile linux/cluster/Makefile
---- linux-2.6.7/cluster/Makefile 1970-01-01 07:30:00.000000000 +0730
-+++ linux/cluster/Makefile 2004-06-17 14:55:06.000000000 +0800
+diff -urN linux-2.6.7clean/cluster/Makefile linux-2.6.7/cluster/Makefile
+--- linux-2.6.7clean/cluster/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.7/cluster/Makefile 2004-07-05 10:42:50.000000000 +0100
@@ -0,0 +1,3 @@
+obj-y := nocluster.o
+
+obj-$(CONFIG_CLUSTER) += cman/
-diff -urN -p linux-2.6.7/cluster/cman/Makefile linux/cluster/cman/Makefile
---- linux-2.6.7/cluster/cman/Makefile 1970-01-01 07:30:00.000000000 +0730
-+++ linux/cluster/cman/Makefile 2004-06-17 14:55:06.000000000 +0800
-@@ -0,0 +1,6 @@
-+cman-objs := cnxman.o config.o membership.o proc.o\
-+ sm_barrier.o sm_control.o sm_daemon.o sm_joinleave.o\
-+ sm_membership.o sm_message.o sm_misc.o sm_recover.o sm_services.o \
-+ sm_user.o
-+
-+obj-$(CONFIG_CLUSTER) := cman.o
-diff -urN -p linux-2.6.7/cluster/nocluster.c linux/cluster/nocluster.c
---- linux-2.6.7/cluster/nocluster.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux/cluster/nocluster.c 2004-06-17 14:55:06.000000000 +0800
+diff -urN linux-2.6.7clean/cluster/nocluster.c linux-2.6.7/cluster/nocluster.c
+--- linux-2.6.7clean/cluster/nocluster.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.7/cluster/nocluster.c 2004-07-05 10:42:50.000000000 +0100
@@ -0,0 +1,20 @@
+/*
+ * cluster/nocluster.c
+void __init nocluster_init(void)
+{
+}
+diff -urN linux-2.6.7clean/Makefile linux-2.6.7/Makefile
+--- linux-2.6.7clean/Makefile 2004-07-05 10:44:04.000000000 +0100
++++ linux-2.6.7/Makefile 2004-07-05 10:42:50.000000000 +0100
+@@ -418,7 +418,7 @@
+
+ # Objects we will link into vmlinux / subdirs we need to visit
+ init-y := init/
+-drivers-y := drivers/ sound/
++drivers-y := drivers/ sound/ cluster/
+ net-y := net/
+ libs-y := lib/
+ core-y := usr/
diff -urN linux-orig/cluster/cman/cnxman-private.h linux-patched/cluster/cman/cnxman-private.h
--- linux-orig/cluster/cman/cnxman-private.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/cnxman-private.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/cnxman-private.h 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,427 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/cnxman.c linux-patched/cluster/cman/cnxman.c
--- linux-orig/cluster/cman/cnxman.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/cnxman.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/cnxman.c 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,4080 @@
+/******************************************************************************
+*******************************************************************************
+ */
diff -urN linux-orig/cluster/cman/config.c linux-patched/cluster/cman/config.c
--- linux-orig/cluster/cman/config.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/config.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/config.c 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,46 @@
+/******************************************************************************
+*******************************************************************************
+};
diff -urN linux-orig/cluster/cman/config.h linux-patched/cluster/cman/config.h
--- linux-orig/cluster/cman/config.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/config.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/config.h 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,31 @@
+/******************************************************************************
+*******************************************************************************
+#endif /* __CONFIG_DOT_H__ */
diff -urN linux-orig/cluster/cman/kjoin.c linux-patched/cluster/cman/kjoin.c
--- linux-orig/cluster/cman/kjoin.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/kjoin.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/kjoin.c 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,238 @@
+/******************************************************************************
+*******************************************************************************
+ */
diff -urN linux-orig/cluster/cman/membership.c linux-patched/cluster/cman/membership.c
--- linux-orig/cluster/cman/membership.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/membership.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/membership.c 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,3069 @@
+/******************************************************************************
+*******************************************************************************
+ */
diff -urN linux-orig/cluster/cman/proc.c linux-patched/cluster/cman/proc.c
--- linux-orig/cluster/cman/proc.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/proc.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/proc.c 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,364 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm.h linux-patched/cluster/cman/sm.h
--- linux-orig/cluster/cman/sm.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,108 @@
+/******************************************************************************
+*******************************************************************************
+#endif /* __SM_DOT_H__ */
diff -urN linux-orig/cluster/cman/sm_barrier.c linux-patched/cluster/cman/sm_barrier.c
--- linux-orig/cluster/cman/sm_barrier.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_barrier.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_barrier.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,232 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_barrier.h linux-patched/cluster/cman/sm_barrier.h
--- linux-orig/cluster/cman/sm_barrier.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_barrier.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_barrier.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,29 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_control.c linux-patched/cluster/cman/sm_control.c
--- linux-orig/cluster/cman/sm_control.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_control.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_control.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,156 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_control.h linux-patched/cluster/cman/sm_control.h
--- linux-orig/cluster/cman/sm_control.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_control.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_control.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,22 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_daemon.c linux-patched/cluster/cman/sm_daemon.c
--- linux-orig/cluster/cman/sm_daemon.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_daemon.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_daemon.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,120 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_daemon.h linux-patched/cluster/cman/sm_daemon.h
--- linux-orig/cluster/cman/sm_daemon.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_daemon.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_daemon.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,32 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_internal.h linux-patched/cluster/cman/sm_internal.h
--- linux-orig/cluster/cman/sm_internal.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_internal.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_internal.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,230 @@
+/******************************************************************************
+*******************************************************************************
+#endif /* __SM_INTERNAL_DOT_H__ */
diff -urN linux-orig/cluster/cman/sm_joinleave.c linux-patched/cluster/cman/sm_joinleave.c
--- linux-orig/cluster/cman/sm_joinleave.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_joinleave.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_joinleave.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,1286 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_joinleave.h linux-patched/cluster/cman/sm_joinleave.h
--- linux-orig/cluster/cman/sm_joinleave.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_joinleave.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_joinleave.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,23 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_membership.c linux-patched/cluster/cman/sm_membership.c
--- linux-orig/cluster/cman/sm_membership.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_membership.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_membership.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,696 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_membership.h linux-patched/cluster/cman/sm_membership.h
--- linux-orig/cluster/cman/sm_membership.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_membership.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_membership.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,20 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_message.c linux-patched/cluster/cman/sm_message.c
--- linux-orig/cluster/cman/sm_message.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_message.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_message.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,867 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_message.h linux-patched/cluster/cman/sm_message.h
--- linux-orig/cluster/cman/sm_message.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_message.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_message.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,34 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_misc.c linux-patched/cluster/cman/sm_misc.c
--- linux-orig/cluster/cman/sm_misc.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_misc.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_misc.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,369 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_misc.h linux-patched/cluster/cman/sm_misc.h
--- linux-orig/cluster/cman/sm_misc.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_misc.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_misc.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,29 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_recover.c linux-patched/cluster/cman/sm_recover.c
--- linux-orig/cluster/cman/sm_recover.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_recover.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_recover.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,522 @@
+/******************************************************************************
+*******************************************************************************
+}
diff -urN linux-orig/cluster/cman/sm_recover.h linux-patched/cluster/cman/sm_recover.h
--- linux-orig/cluster/cman/sm_recover.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_recover.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_recover.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,23 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_services.c linux-patched/cluster/cman/sm_services.c
--- linux-orig/cluster/cman/sm_services.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_services.c 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_services.c 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,418 @@
+/******************************************************************************
+*******************************************************************************
+struct semaphore sm_sglock;
diff -urN linux-orig/cluster/cman/sm_services.h linux-patched/cluster/cman/sm_services.h
--- linux-orig/cluster/cman/sm_services.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_services.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_services.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,20 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/cluster/cman/sm_user.c linux-patched/cluster/cman/sm_user.c
--- linux-orig/cluster/cman/sm_user.c 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_user.c 2004-06-25 10:15:13.000000000 +0800
-@@ -0,0 +1,563 @@
++++ linux-patched/cluster/cman/sm_user.c 2004-06-29 20:07:51.000000000 +0800
+@@ -0,0 +1,569 @@
+/******************************************************************************
+*******************************************************************************
+**
+ .finish = user_finish
+};
+
-+static int user_register(char *name, user_service_t **us_data)
++static int user_register(char *u_name, user_service_t **us_data)
+{
+ user_service_t *us;
-+ int len = strlen(name);
-+ int error;
++ char name[MAX_SERVICE_NAME_LEN+1];
++ int len, error;
++
++ memset(name, 0, MAX_SERVICE_NAME_LEN+1);
++
++ if (copy_from_user(&name, u_name, MAX_SERVICE_NAME_LEN))
++ return -EFAULT;
+
-+ if (len > MAX_SERVICE_NAME_LEN - 1)
++ len = strlen(name);
++ if (len > MAX_SERVICE_NAME_LEN)
+ return -ENAMETOOLONG;
+ if (!len)
+ return -EINVAL;
+}
diff -urN linux-orig/cluster/cman/sm_user.h linux-patched/cluster/cman/sm_user.h
--- linux-orig/cluster/cman/sm_user.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/cluster/cman/sm_user.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/cluster/cman/sm_user.h 2004-06-29 20:07:51.000000000 +0800
@@ -0,0 +1,21 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/include/cluster/cnxman-socket.h linux-patched/include/cluster/cnxman-socket.h
--- linux-orig/include/cluster/cnxman-socket.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/include/cluster/cnxman-socket.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/include/cluster/cnxman-socket.h 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,226 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/include/cluster/cnxman.h linux-patched/include/cluster/cnxman.h
--- linux-orig/include/cluster/cnxman.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/include/cluster/cnxman.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/include/cluster/cnxman.h 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,87 @@
+/******************************************************************************
+*******************************************************************************
+#endif
diff -urN linux-orig/include/cluster/service.h linux-patched/include/cluster/service.h
--- linux-orig/include/cluster/service.h 1970-01-01 07:30:00.000000000 +0730
-+++ linux-patched/include/cluster/service.h 2004-06-25 10:15:13.000000000 +0800
++++ linux-patched/include/cluster/service.h 2004-06-29 20:07:50.000000000 +0800
@@ -0,0 +1,102 @@
+/******************************************************************************
+*******************************************************************************