diff -urN linux-orig/arch/alpha/Kconfig linux-orig2/arch/alpha/Kconfig
--- linux-orig/arch/alpha/Kconfig	2004-10-18 16:55:37.000000000 -0500
+++ linux-orig2/arch/alpha/Kconfig	2004-10-22 11:29:33.507218717 -0500
@@ -600,3 +600,4 @@
 
 source "lib/Kconfig"
 
+source "cluster/Kconfig"
diff -urN linux-orig/arch/arm/Kconfig linux-orig2/arch/arm/Kconfig
--- linux-orig/arch/arm/Kconfig	2004-10-18 16:54:31.000000000 -0500
+++ linux-orig2/arch/arm/Kconfig	2004-10-22 11:30:56.358918506 -0500
@@ -690,3 +690,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/arm26/Kconfig linux-orig2/arch/arm26/Kconfig
--- linux-orig/arch/arm26/Kconfig	2004-10-18 16:54:32.000000000 -0500
+++ linux-orig2/arch/arm26/Kconfig	2004-10-22 11:29:33.531218341 -0500
@@ -222,3 +222,4 @@
 
 source "lib/Kconfig"
 
+source "cluster/Kconfig"
diff -urN linux-orig/arch/cris/Kconfig linux-orig2/arch/cris/Kconfig
--- linux-orig/arch/cris/Kconfig	2004-10-18 16:55:07.000000000 -0500
+++ linux-orig2/arch/cris/Kconfig	2004-10-22 11:31:11.965673644 -0500
@@ -174,3 +174,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/i386/Kconfig linux-orig2/arch/i386/Kconfig
--- linux-orig/arch/i386/Kconfig	2004-10-18 16:53:22.000000000 -0500
+++ linux-orig2/arch/i386/Kconfig	2004-10-22 11:29:33.533218309 -0500
@@ -1194,6 +1194,8 @@
 
 source "lib/Kconfig"
 
+source "cluster/Kconfig"
+
 config X86_SMP
 	bool
 	depends on SMP && !X86_VOYAGER
diff -urN linux-orig/arch/ia64/Kconfig linux-orig2/arch/ia64/Kconfig
--- linux-orig/arch/ia64/Kconfig	2004-10-18 16:55:27.000000000 -0500
+++ linux-orig2/arch/ia64/Kconfig	2004-10-22 11:29:33.534218294 -0500
@@ -390,3 +390,5 @@
 source "security/Kconfig"
 
 source "crypto/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/m68k/Kconfig linux-orig2/arch/m68k/Kconfig
--- linux-orig/arch/m68k/Kconfig	2004-10-18 16:54:32.000000000 -0500
+++ linux-orig2/arch/m68k/Kconfig	2004-10-22 11:31:38.187262279 -0500
@@ -655,3 +655,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/mips/Kconfig linux-orig2/arch/mips/Kconfig
--- linux-orig/arch/mips/Kconfig	2004-10-18 16:54:08.000000000 -0500
+++ linux-orig2/arch/mips/Kconfig	2004-10-22 11:29:33.541218184 -0500
@@ -1563,3 +1563,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/parisc/Kconfig linux-orig2/arch/parisc/Kconfig
--- linux-orig/arch/parisc/Kconfig	2004-10-18 16:54:37.000000000 -0500
+++ linux-orig2/arch/parisc/Kconfig	2004-10-22 11:31:57.146964867 -0500
@@ -195,3 +195,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/ppc/Kconfig linux-orig2/arch/ppc/Kconfig
--- linux-orig/arch/ppc/Kconfig	2004-10-18 16:55:29.000000000 -0500
+++ linux-orig2/arch/ppc/Kconfig	2004-10-22 11:29:33.550218043 -0500
@@ -1231,3 +1231,5 @@
 source "security/Kconfig"
 
 source "crypto/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/ppc64/Kconfig linux-orig2/arch/ppc64/Kconfig
--- linux-orig/arch/ppc64/Kconfig	2004-10-18 16:54:31.000000000 -0500
+++ linux-orig2/arch/ppc64/Kconfig	2004-10-22 11:32:11.150745212 -0500
@@ -352,3 +352,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/s390/Kconfig linux-orig2/arch/s390/Kconfig
--- linux-orig/arch/s390/Kconfig	2004-10-18 16:53:51.000000000 -0500
+++ linux-orig2/arch/s390/Kconfig	2004-10-22 11:32:31.175431141 -0500
@@ -466,3 +466,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/sh/Kconfig linux-orig2/arch/sh/Kconfig
--- linux-orig/arch/sh/Kconfig	2004-10-18 16:55:29.000000000 -0500
+++ linux-orig2/arch/sh/Kconfig	2004-10-22 11:32:47.169180310 -0500
@@ -748,3 +748,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/sparc/Kconfig linux-orig2/arch/sparc/Kconfig
--- linux-orig/arch/sparc/Kconfig	2004-10-18 16:53:05.000000000 -0500
+++ linux-orig2/arch/sparc/Kconfig	2004-10-22 11:33:06.891871022 -0500
@@ -386,3 +386,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/sparc64/Kconfig linux-orig2/arch/sparc64/Kconfig
--- linux-orig/arch/sparc64/Kconfig	2004-10-18 16:55:06.000000000 -0500
+++ linux-orig2/arch/sparc64/Kconfig	2004-10-22 11:33:19.290676599 -0500
@@ -613,3 +613,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/arch/um/Kconfig linux-orig2/arch/um/Kconfig
--- linux-orig/arch/um/Kconfig	2004-10-18 16:54:08.000000000 -0500
+++ linux-orig2/arch/um/Kconfig	2004-10-22 11:29:33.564217823 -0500
@@ -225,6 +225,8 @@
 
 source "lib/Kconfig"
 
+source "cluster/Kconfig"
+
 menu "SCSI support"
 depends on BROKEN
 
diff -urN linux-orig/arch/x86_64/Kconfig linux-orig2/arch/x86_64/Kconfig
--- linux-orig/arch/x86_64/Kconfig	2004-10-18 16:54:55.000000000 -0500
+++ linux-orig2/arch/x86_64/Kconfig	2004-10-22 11:33:37.130396876 -0500
@@ -424,3 +424,5 @@
 source "crypto/Kconfig"
 
 source "lib/Kconfig"
+
+source "cluster/Kconfig"
diff -urN linux-orig/cluster/cman/Makefile linux-orig2/cluster/cman/Makefile
--- linux-orig/cluster/cman/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-orig2/cluster/cman/Makefile	2004-10-22 11:29:33.566217791 -0500
@@ -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-orig/cluster/Kconfig linux-orig2/cluster/Kconfig
--- linux-orig/cluster/Kconfig	1969-12-31 18:00:00.000000000 -0600
+++ linux-orig2/cluster/Kconfig	2004-10-22 11:29:33.565217807 -0500
@@ -0,0 +1,13 @@
+menu "Cluster Support"
+
+config CLUSTER
+	tristate "Cluster support"
+	---help---
+	Enable clustering support. This is not the high-performance clustering
+	made famous by beowulf. It is a high-availability cluster often using
+	shared storage. 
+	The cluster manager is the heart(beat) of the cluster system. It is
+	needed by all the other components. It provides membership services
+	for those other subsystems.
+
+endmenu
diff -urN linux-orig/cluster/Makefile linux-orig2/cluster/Makefile
--- linux-orig/cluster/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-orig2/cluster/Makefile	2004-10-22 11:29:33.566217791 -0500
@@ -0,0 +1,3 @@
+obj-y	:= nocluster.o
+
+obj-$(CONFIG_CLUSTER)         += cman/
diff -urN linux-orig/cluster/nocluster.c linux-orig2/cluster/nocluster.c
--- linux-orig/cluster/nocluster.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-orig2/cluster/nocluster.c	2004-10-22 11:29:33.567217776 -0500
@@ -0,0 +1,20 @@
+/*
+ * cluster/nocluster.c
+ *
+ * Copy from net/nonet.c
+ * Dummy functions to allow us to configure cluster support entirely
+ * out of the kernel.
+ *
+ * Distributed under the terms of the GNU GPL version 2.
+ * Copyright (c) Matthew Wilcox 2003
+ */
+
+#include <linux/module.h>
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+
+void __init nocluster_init(void)
+{
+}
diff -urN linux-orig/Makefile linux-orig2/Makefile
--- linux-orig/Makefile	2004-10-18 16:54:38.000000000 -0500
+++ linux-orig2/Makefile	2004-10-22 11:29:33.507218717 -0500
@@ -445,7 +445,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/
