Whamcloud - gitweb
Land b_smallfix onto HEAD (20040416_1638) (more 2.6 build fixes)
authoradilger <adilger>
Fri, 16 Apr 2004 23:39:49 +0000 (23:39 +0000)
committeradilger <adilger>
Fri, 16 Apr 2004 23:39:49 +0000 (23:39 +0000)
b=2912/2922, b=3145 too

174 files changed:
ldiskfs/kernel_patches/series/ldiskfs-2.6-suse.series
ldiskfs/ldiskfs/Makefile.in
ldiskfs/ldiskfs/autoMakefile.am
lnet/.cvsignore
lnet/Makefile.am [deleted file]
lnet/Makefile.in [new file with mode: 0644]
lnet/archdep.m4
lnet/autoMakefile.am [moved from lustre/portals/knals/Makefile.am with 59% similarity]
lnet/build.m4
lnet/include/linux/portals_compat25.h
lnet/klnds/.cvsignore
lnet/klnds/Makefile.in [new file with mode: 0644]
lnet/klnds/autoMakefile.am [moved from lnet/klnds/Makefile.am with 59% similarity]
lnet/klnds/gmlnd/.cvsignore
lnet/klnds/gmlnd/Makefile.in
lnet/klnds/gmlnd/autoMakefile.am
lnet/klnds/iblnd/.cvsignore
lnet/klnds/iblnd/Makefile.in
lnet/klnds/iblnd/autoMakefile.am
lnet/klnds/qswlnd/.cvsignore
lnet/klnds/qswlnd/Makefile.in
lnet/klnds/qswlnd/autoMakefile.am
lnet/klnds/scimaclnd/.cvsignore
lnet/klnds/scimaclnd/Makefile.in
lnet/klnds/scimaclnd/autoMakefile.am
lnet/klnds/socklnd/.cvsignore
lnet/klnds/socklnd/Makefile.in
lnet/klnds/socklnd/autoMakefile.am
lnet/libcfs/.cvsignore
lnet/libcfs/autoMakefile.am
lnet/libcfs/debug.c
lnet/lnet/.cvsignore
lnet/lnet/autoMakefile.am
lnet/router/.cvsignore
lnet/router/autoMakefile.am
lnet/tests/.cvsignore
lnet/tests/autoMakefile.am
lnet/ulnds/Makefile.am
lnet/ulnds/socklnd/Makefile.am
lnet/utils/parser.c
lustre/.cvsignore
lustre/ChangeLog
lustre/Makefile.am [deleted file]
lustre/Makefile.in [new file with mode: 0644]
lustre/README.kernel-source [new file with mode: 0644]
lustre/Rules.in
lustre/autoMakefile.am [new file with mode: 0644]
lustre/autogen.sh
lustre/cobd/.cvsignore
lustre/cobd/autoMakefile.am
lustre/cobd/cache_obd.c
lustre/configure.in
lustre/include/.cvsignore
lustre/include/config.h.in [deleted file]
lustre/include/liblustre.h
lustre/include/lustre/Makefile.am
lustre/kernel-tests/Makefile
lustre/kernel_patches/kernel_configs/kernel-2.4.21-suse-2.4.21-2-x86_64.config [new file with mode: 0644]
lustre/kernel_patches/patches/export_symbols-2.6-suse.patch
lustre/kernel_patches/patches/kernel_text_address-2.6-suse.patch [deleted file]
lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch
lustre/kernel_patches/series/2.6-suse.series
lustre/kernel_patches/series/ldiskfs-2.6-suse.series
lustre/kernel_patches/targets/suse-2.4.21-2.target [new file with mode: 0644]
lustre/ldiskfs/.cvsignore
lustre/ldiskfs/Makefile.in
lustre/ldiskfs/autoMakefile.am
lustre/ldlm/ldlm_lockd.c
lustre/liblustre/Makefile.am
lustre/liblustre/dir.c
lustre/liblustre/file.c
lustre/liblustre/llite_lib.c
lustre/liblustre/namei.c
lustre/liblustre/rw.c
lustre/liblustre/tests/Makefile.am
lustre/llite/autoMakefile.am
lustre/llite/dir.c
lustre/llite/file.c
lustre/llite/llite_lib.c
lustre/llite/llite_nfs.c
lustre/llite/namei.c
lustre/llite/rw24.c
lustre/llite/rw26.c
lustre/llite/special.c
lustre/llite/super.c
lustre/llite/super25.c
lustre/llite/symlink.c
lustre/lov/.cvsignore
lustre/lov/lov_obd.c
lustre/lvfs/.cvsignore
lustre/lvfs/Makefile.in
lustre/lvfs/autoMakefile.am
lustre/lvfs/fsfilt_ext3.c
lustre/lvfs/fsfilt_reiserfs.c
lustre/mdc/.cvsignore
lustre/mdc/mdc_request.c
lustre/mds/.cvsignore
lustre/mds/autoMakefile.am
lustre/mds/handler.c
lustre/mds/mds_lov.c
lustre/mgmt/mgmt_cli.c
lustre/mgmt/mgmt_svc.c
lustre/obdclass/.cvsignore
lustre/obdclass/Makefile.in
lustre/obdclass/autoMakefile.am
lustre/obdclass/llog_test.c
lustre/obdclass/lprocfs_status.c
lustre/obdecho/echo.c
lustre/obdecho/echo_client.c
lustre/obdfilter/.cvsignore
lustre/obdfilter/autoMakefile.am
lustre/obdfilter/filter.c
lustre/obdfilter/filter_io_26.c
lustre/osc/.cvsignore
lustre/osc/osc_request.c
lustre/ost/.cvsignore
lustre/ost/autoMakefile.am
lustre/ost/ost_handler.c
lustre/portals/.cvsignore
lustre/portals/Makefile.am [deleted file]
lustre/portals/Makefile.in [new file with mode: 0644]
lustre/portals/archdep.m4
lustre/portals/autoMakefile.am [new file with mode: 0644]
lustre/portals/build.m4
lustre/portals/include/linux/portals_compat25.h
lustre/portals/knals/.cvsignore
lustre/portals/knals/Makefile.in [new file with mode: 0644]
lustre/portals/knals/autoMakefile.am [new file with mode: 0644]
lustre/portals/knals/gmnal/.cvsignore
lustre/portals/knals/gmnal/Makefile.in
lustre/portals/knals/gmnal/autoMakefile.am
lustre/portals/knals/ibnal/.cvsignore
lustre/portals/knals/ibnal/Makefile.in
lustre/portals/knals/ibnal/autoMakefile.am
lustre/portals/knals/qswnal/.cvsignore
lustre/portals/knals/qswnal/Makefile.in
lustre/portals/knals/qswnal/autoMakefile.am
lustre/portals/knals/scimacnal/.cvsignore
lustre/portals/knals/scimacnal/Makefile.in
lustre/portals/knals/scimacnal/autoMakefile.am
lustre/portals/knals/socknal/.cvsignore
lustre/portals/knals/socknal/Makefile.in
lustre/portals/knals/socknal/autoMakefile.am
lustre/portals/libcfs/.cvsignore
lustre/portals/libcfs/autoMakefile.am
lustre/portals/libcfs/debug.c
lustre/portals/portals/.cvsignore
lustre/portals/portals/autoMakefile.am
lustre/portals/router/.cvsignore
lustre/portals/router/autoMakefile.am
lustre/portals/tests/.cvsignore
lustre/portals/tests/autoMakefile.am
lustre/portals/unals/Makefile.am
lustre/portals/utils/parser.c
lustre/ptlbd/.cvsignore
lustre/ptlbd/autoMakefile.am
lustre/ptlbd/blk.c
lustre/ptlbd/client.c
lustre/ptlbd/server.c
lustre/ptlrpc/.cvsignore
lustre/ptlrpc/Makefile.in
lustre/ptlrpc/pack_generic.c
lustre/scripts/lmake
lustre/scripts/lustre-kernel-2.4.spec.in
lustre/smfs/autoMakefile.am
lustre/snapfs/autoMakefile.am
lustre/snapfs/utils/Makefile.am
lustre/snapfs/utils/parser.c
lustre/tests/Makefile.am
lustre/tests/cmknod.c
lustre/utils/.cvsignore
lustre/utils/Makefile.am
lustre/utils/lconf [moved from lustre/utils/lconf.in with 99% similarity]
lustre/utils/parser.c

index 65e8dcd..cff99dd 100644 (file)
@@ -1,4 +1,3 @@
-header-guards-2.6-suse.patch
 ext3-wantedi-2.6-suse.patch
 ext3-san-jdike-2.6-suse.patch
 iopen-2.6-suse.patch 
@@ -8,4 +7,3 @@ ext3-init-generation-2.6-suse.patch
 ext3-ea-in-inode-2.6-suse.patch
 export-ext3-2.6-suse.patch
 ext3-include-fixes-2.6-suse.patch
-ext3-xattr-header-move-2.6.suse.patch
index 8fe1606..7d1e229 100644 (file)
@@ -14,4 +14,6 @@ ldiskfs_sources := $(notdir $(ext3_sources) $(ext3_headers)) $(new_sources)
 
 ldiskfs-objs := $(filter %.o,$(ldiskfs_sources:.c=.o))
 
+EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs
+
 @INCLUDE_RULES@
index dabfcbc..b24081e 100644 (file)
@@ -1,5 +1,6 @@
+if LDISKFS
 modulefs_DATA = ldiskfs$(KMODEXT)
-$(modulefs_DATA): sources
+endif
 
 ldiskfs_linux_headers := $(addprefix linux/,$(subst ext3,ldiskfs,$(notdir $(linux_headers))))
 
@@ -56,9 +57,8 @@ foo-check:
        @echo "ldiskfs_OBJECTS: $(ldiskfs_OBJECTS)"
        @echo "ldiskfs_LDADD: $(ldiskfs_LDADD)"
 
-
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
-CLEANFILES = $(ldiskfs_sources) sources ldiskfs-dummy.c ldiskfs.mod.c
+CLEANFILES = sources *.c *.h
 
 clean: clean-am
        rm -rf linux linux-stage
index bd3d9dd..f30d862 100644 (file)
@@ -1,9 +1,11 @@
 Kernelenv
 Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
 aclocal.m4
 autom4te.cache
 config.log
 config.status
 configure
 .*.cmd
+.depend
diff --git a/lnet/Makefile.am b/lnet/Makefile.am
deleted file mode 100644 (file)
index 083edfe..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) 2001  Cluster File Systems, Inc.
-#
-# This code is issued under the GNU General Public License.
-# See the file COPYING in this distribution
-
-EXTRA_DIST = archdep.m4 build.m4 include 
-
-SUBDIRS = portals
-DIST_SUBDIRS =
-
-if LIBLUSTRE
-SUBDIRS += unals
-else
-DIST_SUBDIRS += unals
-endif
-
-if MODULES
-SUBDIRS += libcfs
-if CRAY_PORTALS
-DIST_SUBDIRS += knals router
-else
-SUBDIRS += knals router
-endif
-SUBDIRS += tests
-else
-DIST_SUBDIRS += libcfs knals router tests
-endif
-
-if DOC
-SUBDIRS += doc
-else
-DIST_SUBDIRS += doc
-endif
-
-if UTILS
-SUBDIRS += utils
-else
-DIST_SUBDIRS += utils
-endif
-
-DIST_SUBDIRS += $(SUBDIRS)
diff --git a/lnet/Makefile.in b/lnet/Makefile.in
new file mode 100644 (file)
index 0000000..455eaf4
--- /dev/null
@@ -0,0 +1,13 @@
+ifeq (@MODULES_TRUE@,)
+
+subdir-m += libcfs
+ifeq (@CRAY_PORTALS_FALSE@,)
+subdir-m += portals
+subdir-m += knals
+subdir-m += router
+subdir-m += tests
+endif # CRAY_PORTALS_FALSE
+
+endif # MODULES
+
+@INCLUDE_RULES@
index 62cd441..182a485 100644 (file)
@@ -1,7 +1,7 @@
 # -------- we can't build modules unless srcdir = builddir
 if test x$enable_modules != xno ; then
-AC_CHECK_FILE([Makefile.am],[],
-       [AC_ERROR([At this time, Lustre does not support building kernel modules with srcdir != buildir.])])
+AC_CHECK_FILE([autoMakefile.am],[],
+       [AC_MSG_ERROR([At this time, Lustre does not support building kernel modules with srcdir != buildir.])])
 fi
 
 # -------- in kernel compilation? (2.5 only) -------------
@@ -48,6 +48,24 @@ if test x$enable_inkernel = xyes ; then
         ln -s `pwd` $LINUX/fs/lustre
 fi
 
+# -------- check for .confg --------
+AC_ARG_WITH([linux-config],
+       [AC_HELP_STRING([--with-linux-config=path],
+                       [set path to Linux .conf (default=\$LINUX/.config)])],
+       [LINUX_CONFIG=$with_linux_config],
+       [LINUX_CONFIG=$LINUX/.config])
+AC_SUBST(LINUX_CONFIG)
+
+AC_CHECK_FILE([/boot/kernel.h],
+       [KERNEL_SOURCE_HEADER='/boot/kernel.h'],
+       [AC_CHECK_FILE([/var/adm/running-kernel.h]),
+               [KERNEL_SOURCE_HEADER='/var/adm/running-kernel.h']])
+
+AC_ARG_WITH([kernel-source-header],
+       AC_HELP_STRING([--with-kernel-source-header=path],
+                       [Use a different kernel version header.  Consult README.kernel-source for details.]),
+       [KERNEL_SOURCE_HEADER=$with_kernel_source_header])
+
 #  --------------------
 ARCH_UM=
 UML_CFLAGS=
@@ -62,7 +80,7 @@ if test x$enable_modules != xno ; then
                else
                        AC_MSG_RESULT([no (asm doesn't point at asm-um)])
                fi
-       else 
+       else
                AC_MSG_RESULT([no (asm-um missing)])
        fi
 fi
@@ -70,14 +88,15 @@ AC_SUBST(ARCH_UM)
 AC_SUBST(UML_CFLAGS)
 # --------- Linux 25 ------------------
 
-AC_MSG_CHECKING([if you are running linux 2.5])
-if test -e $LINUX/include/linux/namei.h ; then
-        linux25="yes"
-       KMODEXT=".ko"
-else
-       KMODEXT=".o"
-        linux25="no"
-fi
+AC_CHECK_FILE([$LINUX/include/linux/namei.h],
+       [
+               linux25="yes"
+               KMODEXT=".ko"
+       ],[
+               KMODEXT=".o"
+               linux25="no"
+       ])
+AC_MSG_CHECKING([if you are using Linux 2.6])
 AC_MSG_RESULT([$linux25])
 AM_CONDITIONAL(LINUX25, test x$linux25 = xyes)
 AC_SUBST(KMODEXT)
@@ -98,45 +117,115 @@ AC_SUBST(LLCFLAGS)
 if test x$enable_ldiskfs = xyes ; then
        AC_DEFINE(CONFIG_LDISKFS_FS_MODULE, 1, [build ldiskfs as a module])
        AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [enable extended attributes for ldiskfs])
-       AC_DEFINE(CONFIG_LDISKFS_POSIX_ACL, 1, [enable posix acls])
+       AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [enable posix acls])
        AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [enable fs security])
 fi
 
-EXTRA_KCFLAGS="-g -I$PWD/portals/include -I$PWD/include $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE"
+EXTRA_KCFLAGS="-g $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE -I$PWD/portals/include -I$PWD/include"
 
-# ----------- make dep run? ------------------
+# these are like AC_TRY_COMPILE, but try to build modules against the
+# kernel, inside the kernel-tests directory
 
-if test x$enable_modules != xno ; then
-       AC_MSG_CHECKING([if make dep has been run in kernel source (host $host_cpu)])
-       if test -f $LINUX/include/linux/config.h ; then
-               AC_MSG_RESULT([yes])
-       else
-               AC_MSG_RESULT([no])
-               AC_MSG_ERROR([** cannot find $LINUX/include/linux/config.h. Run make dep in $LINUX.])
-       fi
-fi
+AC_DEFUN([LUSTRE_MODULE_CONFTEST],
+[cat >conftest.c <<_ACEOF
+$1
+_ACEOF
+])
+
+AC_DEFUN([LUSTRE_MODULE_COMPILE_IFELSE],
+[m4_ifvaln([$1], [LUSTRE_MODULE_CONFTEST([$1])])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.ko
+AS_IF([AC_TRY_COMMAND(cp conftest.c kernel-tests && make [$2] -f $PWD/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX EXTRA_CFLAGS="$EXTRA_KCFLAGS" $ARCH_UM SUBDIRS=$PWD/kernel-tests) >/dev/null && AC_TRY_COMMAND([$3])],
+       [$4],
+       [_AC_MSG_LOG_CONFTEST
+m4_ifvaln([$5],[$5])dnl])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.mod.o kernel-tests/conftest.ko m4_ifval([$1], [kernel-tests/conftest.c conftest.c])[]dnl
+])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_COMPILE],
+[LUSTRE_MODULE_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[$1]], [[$2]])],
+       [modules],
+       [test -s kernel-tests/conftest.o],
+       [$3], [$4])])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_MAKE],
+[LUSTRE_MODULE_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4], [$5], [$6])])
 
 # ------------ include paths ------------------
 
 if test x$enable_modules != xno ; then
-       # ------------ autoconf.h ------------------
-       AC_MSG_CHECKING([if autoconf.h is in kernel source])
-       if test -f $LINUX/include/linux/autoconf.h ; then
-               AC_MSG_RESULT(yes)
-       else
-               AC_MSG_RESULT(no)
-               AC_MSG_ERROR([** cannot find $LINUX/include/linux/autoconf.h. Run make config in $LINUX.])
+       # ------------ .config exists ----------------
+       AC_CHECK_FILE([$LINUX_CONFIG],[],
+               [AC_MSG_ERROR([Kernel config could not be found.  If you are building from a kernel-source rpm consult README.kernel-source])])
+
+       # ----------- make dep run? ------------------
+       AC_CHECK_FILES([$LINUX/include/linux/autoconf.h
+                       $LINUX/include/linux/version.h
+                       $LINUX/include/linux/config.h],[],
+               [AC_MSG_ERROR([Run make config in $LINUX.])])
+
+       # ------------ rhconfig.h includes runtime-generated bits --
+       # red hat kernel-source checks
+
+       # we know this exists after the check above.  if the user
+       # tarred up the tree and ran make dep etc. in it, then
+       # version.h gets overwritten with a standard linux one.
+
+       if grep rhconfig $LINUX/include/linux/version.h >/dev/null ; then
+               # This is a clean kernel-source tree, we need to
+               # enable extensive workarounds to get this to build
+               # modules
+               AC_CHECK_FILE([$KERNEL_SOURCE_HEADER],
+                       [if test $KERNEL_SOURCE_HEADER = '/boot/kernel.h' ; then
+                               AC_MSG_WARN([Using /boot/kernel.h from RUNNING kernel.])
+                               AC_MSG_WARN([If this is not what you want, use --with-kernel-source-header.])
+                               AC_MSG_WARN([Consult README.kernel-source for details.])
+                       fi],
+                       [AC_MSG_ERROR([$KERNEL_SOURCE_HEADER not found.  Consult README.kernel-source for details.])])
+               EXTRA_KCFLAGS="-include $KERNEL_SOURCE_HEADER $EXTRA_KCFLAGS"
        fi
 
+       # --- check that we can build modules at all
+       AC_MSG_CHECKING([that modules can be built])
+       LUSTRE_MODULE_TRY_COMPILE([],[],
+               [
+                       AC_MSG_RESULT([yes])
+               ],[
+                       AC_MSG_RESULT([no])
+                       AC_MSG_WARN([Consult config.log for details.])
+                       AC_MSG_WARN([If you are trying to build with a kernel-source rpm, consult README.kernel-source])
+                       AC_MSG_ERROR([Kernel modules could not be built.])
+               ])
+
        # ------------ LINUXRELEASE and moduledir ------------------
        AC_MSG_CHECKING([for Linux release])
-
-       # this is bogus, as it doesn't work against kernel-source rpms  
-       dnl We need to rid ourselves of the nasty [ ] quotes.
-       changequote(, )
-       dnl Get release from version.h
-       LINUXRELEASE="`sed -ne 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_-]*\).*/\1/p' $LINUX/include/linux/version.h`"
-       changequote([, ])
+       rm -f kernel-tests/conftest.i
+       LINUXRELEASE=
+       if test $linux25 = 'yes' ; then
+               makerule="$PWD/kernel-tests"
+       else
+               makerule="_dir_$PWD/kernel-tests"
+       fi
+       LUSTRE_MODULE_TRY_MAKE(
+               [#include <linux/version.h>],
+               [LINUXRELEASE=UTS_RELEASE],
+               [$makerule LUSTRE_KERNEL_TEST=conftest.i],
+               [test -s kernel-tests/conftest.i],
+               [
+                       # LINUXRELEASE="UTS_RELEASE"
+                       eval $(grep LINUXRELEASE kernel-tests/conftest.i)
+               ],[
+                       AC_MSG_RESULT([unknown])
+                       AC_MSG_ERROR([Could not preprocess test program.  Consult config.log for details.])
+               ])
+       rm -f kernel-tests/conftest.i
+       if test x$LINUXRELEASE = x ; then
+               AC_MSG_RESULT([unknown])
+               AC_MSG_ERROR([Could not determine Linux release version from linux/version.h.])
+       fi
+       AC_MSG_RESULT([$LINUXRELEASE])
+       AC_SUBST(LINUXRELEASE)
 
        moduledir='$(libdir)/modules/'$LINUXRELEASE/kernel
        AC_SUBST(moduledir)
@@ -144,18 +233,9 @@ if test x$enable_modules != xno ; then
        modulefsdir='$(moduledir)/fs/$(PACKAGE)'
        AC_SUBST(modulefsdir)
 
-       AC_MSG_RESULT($LINUXRELEASE)
-       AC_SUBST(LINUXRELEASE)
-
        # ------------ RELEASE --------------------------------
-       AC_MSG_CHECKING([lustre release])
-  
-       dnl We need to rid ourselves of the nasty [ ] quotes.
-       changequote(, )
-       dnl Get release from version.h
-       RELEASE="`sed -ne 's/-/_/g' -e 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_]*\).*/\1/p' $LINUX/include/linux/version.h`_`date +%Y%m%d%H%M`"
-       changequote([, ])
-
+       AC_MSG_CHECKING([for Lustre release])
+       RELEASE="${LINUXRELEASE}_`date +%Y%m%d%H%M`"
        AC_MSG_RESULT($RELEASE)
        AC_SUBST(RELEASE)
 fi
@@ -226,6 +306,7 @@ else
 fi
 AC_SUBST(QSWCPPFLAGS)
 AC_SUBST(QSWNAL)
+AM_CONDITIONAL(BUILD_QSWNAL, test x$QSWNAL = "xqswnal")
 
 AC_MSG_CHECKING([if gm support was requested])
 AC_ARG_WITH([gm],
@@ -256,7 +337,7 @@ AC_ARG_WITH([gm],
        ])
 AC_SUBST(GMCPPFLAGS)
 AC_SUBST(GMNAL)
-
+AM_CONDITIONAL(BUILD_GMNAL, test x$GMNAL = "xgmnal")
 
 #fixme: where are the default IB includes?
 default_ib_include_dir=/usr/local/ib/include
@@ -291,7 +372,7 @@ AC_ARG_WITH([ib],
        ])
 AC_SUBST(IBNAL)
 AC_SUBST(IBCPPFLAGS)
-
+AM_CONDITIONAL(BUILD_IBNAL, test x$IBNAL = "xibnal")
 
 def_scamac=/opt/scali/include
 AC_MSG_CHECKING([if ScaMAC support was requested])
@@ -323,34 +404,12 @@ AC_ARG_WITH([scamac],
        ])
 AC_SUBST(SCIMACCPPFLAGS)
 AC_SUBST(SCIMACNAL)
+AM_CONDITIONAL(BUILD_SCIMACNAL, test x$SCIMACNAL = "xscimacnal")
 # if test "$with_scamac" != no -a -f ${with_scamac}/scamac.h; then
 
 AC_SUBST(MOD_LINK)
 AC_SUBST(LINUX25)
 
-# these are like AC_TRY_COMPILE, but try to build modules against the
-# kernel, inside the kernel-tests directory
-
-AC_DEFUN([LUSTRE_MODULE_CONFTEST],
-[cat >conftest.c <<_ACEOF
-$1
-_ACEOF
-])
-
-AC_DEFUN([LUSTRE_MODULE_COMPILE_IFELSE],
-[m4_ifvaln([$1], [LUSTRE_MODULE_CONFTEST([$1])])dnl
-rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.ko
-AS_IF([_AC_EVAL_STDERR([cp conftest.c kernel-tests && make modules -C $LINUX $ARCH_UM SUBDIRS=$PWD/kernel-tests >/dev/null]) &&
-       AC_TRY_COMMAND([test -s kernel-tests/conftest.o])],
-       [$2],
-       [_AC_MSG_LOG_CONFTEST
-m4_ifvaln([$3],[$3])dnl])dnl
-rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.mod.o kernel-tests/conftest.ko m4_ifval([$1], [kernel-tests/conftest.c conftest.c])[]dnl
-])
-
-AC_DEFUN([LUSTRE_MODULE_TRY_COMPILE],
-[LUSTRE_MODULE_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])])
-
 # ---------- Red Hat 2.4.18 has iobuf->dovary --------------
 # But other kernels don't
 
@@ -452,6 +511,22 @@ if test x$enable_modules != xno ; then
                        AC_MSG_RESULT([no])
                ])
 
+       # ------------ preempt -----------------------
+       AC_MSG_CHECKING([if preempt is enabled])
+       LUSTRE_MODULE_TRY_COMPILE(
+               [
+                       #include <linux/config.h>
+               ],[
+                       #ifndef CONFIG_PREEMPT
+                       #error CONFIG_PREEMPT is not #defined
+                       #endif
+               ],[
+                       AC_MSG_RESULT([yes])
+                       AC_MSG_ERROR([Lustre does not support kernels with preempt enabled.])
+               ],[
+                       AC_MSG_RESULT([no])
+               ])
+
        if test $BACKINGFS = 'ext3' ; then
                # --- Check that ext3 and ext3 xattr are enabled in the kernel
                AC_MSG_CHECKING([that ext3 is enabled in the kernel])
similarity index 59%
rename from lustre/portals/knals/Makefile.am
rename to lnet/autoMakefile.am
index df6ee5c..bd57e6e 100644 (file)
@@ -3,5 +3,6 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
-DIST_SUBDIRS= socknal qswnal gmnal scimacnal ibnal
-SUBDIRS= socknal @QSWNAL@ @GMNAL@ @SCIMACNAL@ @IBNAL@
+EXTRA_DIST = archdep.m4 build.m4 include 
+
+SUBDIRS = portals libcfs knals unals router tests doc utils
index 8ccb1d3..93a370f 100644 (file)
@@ -1,5 +1,9 @@
 # ----------  other tests and settings ---------
 
+AC_CHECK_TYPE([spinlock_t],
+       [AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])],
+       [],
+       [#include <linux/spinlock.h>])
 
 # ---------  unsigned long long sane? -------
 
index 4803a9b..34c263b 100644 (file)
@@ -40,6 +40,9 @@
 # define RECALC_SIGPENDING         recalc_sigpending()
 # define CURRENT_SECONDS           CURRENT_TIME
 
+# define kernel_text_address(addr) is_kernel_text_address(addr)
+extern int is_kernel_text_address(unsigned long addr);
+
 #else /* 2.4.x */
 
 # define SIGNAL_MASK_LOCK(task, flags)                                  \
@@ -51,6 +54,9 @@
 # define RECALC_SIGPENDING         recalc_sigpending(current)
 # define CURRENT_SECONDS           CURRENT_TIME
 
+# define kernel_text_address(addr) is_kernel_text_address(addr)
+extern int is_kernel_text_address(unsigned long addr);
+
 #endif
 
 #if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
index 06c8fdb..f5fd0b0 100644 (file)
@@ -1,3 +1,5 @@
 Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
 .*.cmd
+.depend
diff --git a/lnet/klnds/Makefile.in b/lnet/klnds/Makefile.in
new file mode 100644 (file)
index 0000000..8b65144
--- /dev/null
@@ -0,0 +1,11 @@
+ifeq (@MODULES_TRUE@,)
+
+@BUILD_GMNAL_TRUE@subdir-m += gmnal
+@BUILD_IBNAL_TRUE@subdir-m += ibnal
+@BUILD_QSWNAL_TRUE@subdir-m += qswnal
+@BUILD_SCIMACNAL_TRUE@subdir-m += scimacnal
+subdir-m += socknal
+
+endif # MODULES_TRUE
+
+@INCLUDE_RULES@
similarity index 59%
rename from lnet/klnds/Makefile.am
rename to lnet/klnds/autoMakefile.am
index df6ee5c..60318ee 100644 (file)
@@ -3,5 +3,4 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
-DIST_SUBDIRS= socknal qswnal gmnal scimacnal ibnal
-SUBDIRS= socknal @QSWNAL@ @GMNAL@ @SCIMACNAL@ @IBNAL@
+SUBDIRS = gmnal ibnal qswnal scimacnal socknal
index 4c4a6ed..642e2e6 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.cmd
 .*.flags
 .tmp_versions
+.depend
index 3892fb7..89ea361 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kgmnal
 kgmnal-objs := gmnal_api.o gmnal_cb.o gmnal_comm.o gmnal_utils.o gmnal_module.o
 
-EXTRA_CFLAGS := @GMCPPFLAGS@
+EXTRA_PRE_CFLAGS := @GMCPPFLAGS@
 
 @INCLUDE_RULES@
index 9e92c69..d8b9edb 100644 (file)
@@ -3,7 +3,13 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if BUILD_GMNAL
+if !CRAY_PORTALS
 modulenet_DATA = kgmnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kgmnal-objs:%.o=%.c) gmnal.h
index 409d56d..48b17e9 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.flags
 .*.cmd
 .tmp_versions
+.depend
index 2b29307..e180b3e 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kibnal
 kibnal-objs := ibnal.o ibnal_cb.o
 
-EXTRA_CFLAGS := @IBCPPFLAGS@
+EXTRA_PRE_CFLAGS := @IBCPPFLAGS@
 
 @INCLUDE_RULES@
index 46bfc0d..ffe084c 100644 (file)
@@ -1,4 +1,10 @@
+if MODULES
+if !CRAY_PORTALS
+if BUILD_IBNAL
 modulenet_DATA = kibnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kibnal-objs:%.o=%.c) ibnal.h
index 409d56d..48b17e9 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.flags
 .*.cmd
 .tmp_versions
+.depend
index 17b1778..60d09c8 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kqswnal
 kqswnal-objs := qswnal.o qswnal_cb.o
 
-EXTRA_CFLAGS := @QSWCPPFLAGS@ -I /usr/include
+EXTRA_PRE_CFLAGS := @QSWCPPFLAGS@ -I/usr/include
 
 @INCLUDE_RULES@
index c601465..b5b2e07 100644 (file)
@@ -3,7 +3,13 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
+if BUILD_QSWNAL
 modulenet_DATA = kqswnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kqswnal-objs:%.o=%.c) qswnal.h
index 409d56d..48b17e9 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.flags
 .*.cmd
 .tmp_versions
+.depend
index 19ee350..c7eb4ac 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kscimacnal
 kscimacnal-objs := scimacnal.o scimacnal_cb.o
 
-EXTRA_CFLAGS += @SCIMACCPPFLAGS@
+EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@
 
 @INCLUDE_RULES@
index 4580d2b..47433cd 100644 (file)
@@ -1,7 +1,13 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
+if BUILD_SCIMACNAL
 modulenet_DATA = kscimacnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(ksimacnal-objs:%.o=%.c) scimacnal.h
index 702fcbe..5ed596b 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 9377751..633b455 100644 (file)
@@ -3,6 +3,6 @@ ksocknal-objs := socknal.o socknal_cb.o
 
 # If you don't build with -O2, your modules won't insert, becahse htonl is
 # just special that way.
-EXTRA_CFLAGS := -O2
+EXTRA_POST_CFLAGS := -O2
 
 @INCLUDE_RULES@
index 0923459..070b649 100644 (file)
@@ -3,7 +3,11 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
 modulenet_DATA = ksocknal$(KMODEXT)
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(ksocknal-objs:%.o=%.c) socknal.h
index 3a771f9..c6f0aa4 100644 (file)
@@ -8,3 +8,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 59576b1..192c3ef 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulenet_DATA := libcfs$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(libcfs-objs:%.o=%.c)
index a444e9e..aaf5827 100644 (file)
@@ -45,6 +45,7 @@
 #include <asm/uaccess.h>
 #include <asm/segment.h>
 #include <linux/miscdevice.h>
+#include <linux/version.h>
 
 # define DEBUG_SUBSYSTEM S_PORTALS
 
 #include <linux/portals_compat25.h>
 #include <linux/libcfs.h>
 
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#include <linux/kallsyms.h>
+#endif
+
 unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
                                             S_GMNAL | S_IBNAL);
 EXPORT_SYMBOL(portal_subsystem_debug);
@@ -985,8 +990,6 @@ spinlock_t stack_backtrace_lock = SPIN_LOCK_UNLOCKED;
 
 #if defined(__arch_um__)
 
-extern int is_kernel_text_address(unsigned long addr);
-
 char *portals_debug_dumpstack(void)
 {
         asm("int $3");
@@ -995,33 +998,45 @@ char *portals_debug_dumpstack(void)
 
 #elif defined(__i386__)
 
-extern int is_kernel_text_address(unsigned long addr);
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 extern int lookup_symbol(unsigned long address, char *buf, int buflen);
+const char *kallsyms_lookup(unsigned long addr,
+                            unsigned long *symbolsize,
+                            unsigned long *offset,
+                            char **modname, char *namebuf);
+{
+        int rc = lookup_symbol(addr, namebuf, 128);
+        if (rc == -ENOSYS)
+                return NULL;
+        return namebuf;
+}
+#endif
 
 char *portals_debug_dumpstack(void)
 {
-        unsigned long esp = current->thread.esp;
+        unsigned long esp = current->thread.esp, addr;
         unsigned long *stack = (unsigned long *)&esp;
+        char *buf = stack_backtrace, *pbuf = buf;
         int size;
-        unsigned long addr;
-        char *buf = stack_backtrace;
-        char *pbuf = buf;
-        static char buffer[512];
-        int rc = 0;
 
         /* User space on another CPU? */
-        if ((esp ^ (unsigned long)current) & (PAGE_MASK<<1)){
+        if ((esp ^ (unsigned long)current) & (PAGE_MASK << 1)){
                 buf[0] = '\0';
                 goto out;
         }
 
         size = sprintf(pbuf, " Call Trace: ");
         pbuf += size;
-        while (((long) stack & (THREAD_SIZE-1)) != 0) {
+        while (((long) stack & (THREAD_SIZE - 1)) != 0) {
                 addr = *stack++;
-                if (is_kernel_text_address(addr)) {
-                        rc = lookup_symbol(addr, buffer, 512);
-                        if (rc == -ENOSYS) {
+                if (kernel_text_address(addr)) {
+                        const char *sym_name;
+                        char *modname, buffer[128];
+                        unsigned long junk, offset;
+
+                        sym_name = kallsyms_lookup(addr, &junk, &offset,
+                                                   &modname, buffer);
+                        if (sym_name == NULL) {
                                 if (buf + LUSTRE_TRACE_SIZE <= pbuf + 12)
                                         break;
                                 size = sprintf(pbuf, "[<%08lx>] ", addr);
@@ -1031,7 +1046,7 @@ char *portals_debug_dumpstack(void)
                                     <= pbuf + strlen(buffer) + 28 + 1)
                                         break;
                                 size = sprintf(pbuf, "([<%08lx>] %s (0x%p)) ",
-                                               addr, buffer, stack-1);
+                                               addr, buffer, stack - 1);
                         }
                         pbuf += size;
                 }
index 702fcbe..5ed596b 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index b4743fe..bf7a107 100644 (file)
@@ -7,6 +7,8 @@ my_sources = api-eq.c api-init.c api-me.c api-errno.c api-ni.c api-wrap.c \
                lib-dispatch.c lib-init.c lib-me.c lib-msg.c lib-eq.c \
                lib-md.c lib-move.c lib-ni.c lib-pid.c
 
+if !CRAY_PORTALS
+
 if LIBLUSTRE
 noinst_LIBRARIES= libportals.a
 libportals_a_SOURCES= $(my_sources)
@@ -16,7 +18,9 @@ endif
 
 if MODULES
 modulenet_DATA = portals$(KMODEXT)
-endif
+endif # MODULES
+
+endif # CRAY_PORTALS
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(portals-objs:%.o=%.c)
index 702fcbe..5ed596b 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 5249659..fa11e8c 100644 (file)
@@ -3,7 +3,11 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
 modulenet_DATA = kptlrouter$(KMODEXT)
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kptlrouter-objs:%.o=%.c) router.h
index 13c1032..e034130 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index a1ff7e8..5f81b93 100644 (file)
@@ -3,9 +3,14 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
+if TESTS
 noinst_DATA := pingsrv$(KMODEXT) pingcli$(KMODEXT)
 noinst_DATA += spingsrv$(KMODEXT) spingcli$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c pingsrv.c pingcli.c spingsrv.c spingcli.c
-DIST_SOURCES = $(pingsrc-objs:%.o=%.c) $(pingcli:%.o=%.c) \
-       $(spingsrv:%.o=%.c) $(spingcli:%.o=%.c) ping.h
+DIST_SOURCES = ping_srv.c ping_cli.c sping_srv.c sping_cli.c ping.h
index 0c1ec21..4c842a1 100644 (file)
@@ -1,4 +1,7 @@
+if LIBLUSTRE
 noinst_LIBRARIES = libtcpnal.a
+endif
+
 pkginclude_HEADERS =  pqtimer.h dispatch.h table.h timer.h connection.h ipmap.h bridge.h procbridge.h
 libtcpnal_a_SOURCES = debug.c pqtimer.c select.c table.c pqtimer.h dispatch.h table.h timer.h address.c procapi.c proclib.c connection.c tcpnal.c connection.h
 libtcpnal_a_CPPFLAGS = $(LLCPPFLAGS)
index 0c1ec21..4c842a1 100644 (file)
@@ -1,4 +1,7 @@
+if LIBLUSTRE
 noinst_LIBRARIES = libtcpnal.a
+endif
+
 pkginclude_HEADERS =  pqtimer.h dispatch.h table.h timer.h connection.h ipmap.h bridge.h procbridge.h
 libtcpnal_a_SOURCES = debug.c pqtimer.c select.c table.c pqtimer.h dispatch.h table.h timer.h address.c procapi.c proclib.c connection.c tcpnal.c connection.h
 libtcpnal_a_CPPFLAGS = $(LLCPPFLAGS)
index 426565e..82b4022 100644 (file)
 #include <sys/param.h>
 #include <assert.h>
 
-#include <config.h>
 #ifdef HAVE_LIBREADLINE
 #define        READLINE_LIBRARY
 #include <readline/readline.h>
-#endif
 
 /* completion_matches() is #if 0-ed out in modern glibc */
 #ifndef completion_matches
-#define completion_matches rl_completion_matches
+#  define completion_matches rl_completion_matches
+#endif
 #endif
+
 extern void using_history(void);
 extern void stifle_history(int);
 extern void add_history(char *);
@@ -225,14 +225,15 @@ static char **command_completion(char * text, int start, int end)
     char       * pos;
 
     match_tbl = top_level;
+    
     for (table = find_cmd(rl_line_buffer, match_tbl, &pos);
-        table;
-        table = find_cmd(pos, match_tbl, &pos)) {
+        table; table = find_cmd(pos, match_tbl, &pos)) 
+    {
 
        if (*(pos - 1) == ' ') match_tbl = table->pc_sub_cmd;
     }
 
-    return(completion_matches(text, command_generator));
+    return completion_matches(text, command_generator);
 }
 #endif
 
index fde4320..07a5c92 100644 (file)
@@ -8,7 +8,8 @@ config.guess
 config.sub
 configure
 Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
 .deps
 tags
 TAGS
@@ -25,3 +26,5 @@ Rules
 missing
 mkinstalldirs
 install-sh
+.depend
+.tmp_versions
index 1555716..e1fbe08 100644 (file)
@@ -2,9 +2,6 @@ tbd  Cluster File Systems, Inc. <info@clusterfs.com>
        * version 1.2.x
        * bug fixes
        - clear page cache after eviction (2766)
-       - zero nameidata in detach_mnt (3118)
-       - verify d_inode after revalidate_special is valid (3116)
-       - use lustre_put_super() to handle zconf unmounts in 2.6 (3064)
 
 tbd  Cluster File Systems, Inc. <info@clusterfs.com>
        * version 1.2.2
@@ -22,6 +19,10 @@ tbd  Cluster File Systems, Inc. <info@clusterfs.com>
        - don't dereference ERR_PTR() dentry in error handling path (3107)
        - fix thread race in portals_debug_dumplog() (3122)
        - create lprocfs device entries at setup instead of at attach (1519)
+       - common AST error handler, don't evict client on completion race (3145)
+       - zero nameidata in detach_mnt in 2.6 (3118)
+       - verify d_inode after revalidate_special is valid in 2.6 (3116)
+       - use lustre_put_super() to handle zconf unmounts in 2.6 (3064)
        * miscellania
        - allow default OST striping configuration per directory (1414)
 
diff --git a/lustre/Makefile.am b/lustre/Makefile.am
deleted file mode 100644 (file)
index 4410599..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright (C) 2001  Cluster File Systems, Inc.
-#
-# This code is issued under the GNU General Public License.
-# See the file COPYING in this distribution
-
-AUTOMAKE_OPTIONS = foreign
-
-DIST_SUBDIRS = 
-SUBDIRS = include portals conf scripts ldlm
-
-# ldiskfs creates headers that the ldiskfs fsfilt will need
-if MODULES
-if LDISKFS
-SUBDIRS += ldiskfs
-else
-DIST_SUBDIRS += ldiskfs
-endif
-else
-DIST_SUBDIRS += ldiskfs
-endif
-
-# directories shared by the liblustre and modules builds
-CORE_SUBDIRS = lvfs obdclass lov ptlrpc obdecho osc mdc
-if LIBLUSTRE
-SUBDIRS += $(CORE_SUBDIRS)
-else
-if MODULES
-SUBDIRS += $(CORE_SUBDIRS)
-else
-DIST_SUBDIRS += $(CORE_SUBDIRS)
-endif
-endif
-
-# directories only built in the modules build
-MODULES_SUBDIRS = mds obdfilter ost llite cobd
-MODULES_DIST_SUBDIRS =
-
-if LINUX25
-MODULES_DIST_SUBDIRS += ptlbd
-else
-MODULES_SUBDIRS += ptlbd
-endif
-
-if SNAPFS
-MODULES_SUBDIRS += snapfs
-else
-MODULES_DIST_SUBDIRS += snapfs
-endif
-
-if SMFS
-MODULES_SUBDIRS += smfs
-else
-MODULES_DIST_SUBDIRS += smfs
-endif
-
-if MODULES
-SUBDIRS += $(MODULES_SUBDIRS)
-DIST_SUBDIRS += $(MODULES_DIST_SUBDIRS)
-else
-DIST_SUBDIRS += $(MODULES_SUBDIRS) $(MODULES_DIST_SUBDIRS)
-endif
-
-if LIBLUSTRE
-SUBDIRS += liblustre
-else
-DIST_SUBDIRS += liblustre
-endif
-
-if DOC
-SUBDIRS += doc
-else
-DIST_SUBDIRS += doc
-endif
-
-if UTILS
-SUBDIRS += utils
-else
-DIST_SUBDIRS += utils
-endif
-
-if TESTS
-SUBDIRS += tests
-else
-DIST_SUBDIRS += tests
-endif
-
-DIST_SUBDIRS += $(SUBDIRS)
-
-EXTRA_DIST = BUGS FDL Rules.in kernel_patches kernel-tests/Makefile
-
-dist-hook:
-       find $(distdir) -name .deps | xargs rm -rf
-       find $(distdir) -name CVS | xargs rm -rf
-
-rpms: dist Makefile
-       rpmbuild -ta $(distdir).tar.gz
-
-CSTK=/tmp/checkstack
-CSTKO=/tmp/checkstack.orig
-
-checkstack:
-       [ -f ${CSTK} -a ! -s ${CSTKO} ] && mv ${CSTK} ${CSTKO} || true
-       for i in ${SUBDIRS} portals/knals/*; do                              \
-               MOD=$$i/`basename $$i`.o;                                    \
-               [ -f $$MOD ] && objdump -d $$MOD | perl tests/checkstack.pl; \
-       done | sort -nr > ${CSTK}
-       [ -f ${CSTKO} ] && ! diff -u ${CSTKO} ${CSTK} || head -30 ${CSTK}
-
-checkstack-update:
-       [ -f ${CSTK} ] && mv ${CSTK} ${CSTKO}
-
-checkstack-clean:
-       rm -f ${CSTK} ${CSTKO}
diff --git a/lustre/Makefile.in b/lustre/Makefile.in
new file mode 100644 (file)
index 0000000..045da85
--- /dev/null
@@ -0,0 +1,29 @@
+ifeq (@MODULES_TRUE@,)
+
+subdir-m += portals
+
+@LDISKFS_TRUE@subdir-m  += ldiskfs
+
+subdir-m += lvfs
+subdir-m += obdclass
+subdir-m += lov
+subdir-m += ptlrpc
+subdir-m += obdecho
+subdir-m += osc
+subdir-m += mdc
+subdir-m += mds
+subdir-m += obdfilter
+subdir-m += ost
+subdir-m += llite
+subdir-m += cobd
+
+ifeq ($(PATCHLEVEL),4)
+subdir-m += ptlbd
+endif # PATCHLEVEL = 4
+
+@SNAPFS_TRUE@subdir-m += snapfs
+@SMFS_TRUE@subdir-m += smfs
+
+endif # MODULES_TRUE
+
+@INCLUDE_RULES@
diff --git a/lustre/README.kernel-source b/lustre/README.kernel-source
new file mode 100644 (file)
index 0000000..0b88efe
--- /dev/null
@@ -0,0 +1,74 @@
+Lustre can currently build against Red Hat 2.4-style kernel-source
+RPMs.  All other kernel-source RPMs are *unsupported* at this time.
+
+Note that a Lustre-patched kernel is required for building Lustre; in
+most cases a kernel-source RPM from your Linux vendor will not contain
+the necessary patches.
+
+1.  kernel.h
+
+Building against a kernel-source RPM requires a special header.  On
+Red Hat systems, this file should be automatically created at boot
+time, and saved in /boot/kernel.h.
+
+ *** If you are not running Red Hat Linux, or are not booted into the
+ *** kernel you are trying to build against, you need to create this
+ *** file manually.
+
+ *** If you do not, the Lustre build may fail, or may fail to build
+ *** modules that work with your kernel.
+
+Here is an example /boot/kernel.h file.  If you are building on
+x86_64, the first defines should be __MODULE_KERNEL_x86_64, etc.  The
+other defines should be simple to figure out.
+
+/* This file is automatically generated at boot time. */
+#ifndef __BOOT_KERNEL_H_
+#define __BOOT_KERNEL_H_
+
+/* Kernel type i686-smp */
+
+#ifndef __MODULE_KERNEL_i686
+#define __MODULE_KERNEL_i686 1
+#endif
+
+#ifndef __BOOT_KERNEL_ENTERPRISE
+#define __BOOT_KERNEL_ENTERPRISE 0
+#endif
+
+#ifndef __BOOT_KERNEL_BIGMEM
+#define __BOOT_KERNEL_BIGMEM 0
+#endif
+
+#ifndef __BOOT_KERNEL_HUGEMEM
+#define __BOOT_KERNEL_HUGEMEM 0
+#endif
+
+#ifndef __BOOT_KERNEL_SMP
+#define __BOOT_KERNEL_SMP 1
+#endif
+
+#ifndef __BOOT_KERNEL_UP
+#define __BOOT_KERNEL_UP 0
+#endif
+
+#endif
+
+You should save this somewhere, and pass the location of this file to
+./configure using the --with-kernel-source-header option.
+
+2.  .config
+
+You will also need to tell Lustre about the .config file for your
+kernel.  The two likely locations of this file are
+/boot/config-$(uname -r), and /usr/src/linux-2.4/configs/.  You should
+pass the location of this file to Lustre using the --with-linux-config
+option.
+
+3.  An Example
+
+Here is an example for configuring Lustre:
+
+./configure --with-linux=/usr/src/linux-2.4.20-28.9_lustre.1.0.3 \
+--with-kernel-source-header=/boot/kernel.h \
+--with-linux-config=/boot/config-2.4.20-28.9_lustre.1.0.3smp
index 2180940..1a3ae52 100644 (file)
 # DIST_SOURCES = $(<module-name>-objs:.o=.c) <other sources>
 # MOSTLYCLEANFILES = *.o *.ko *.mod.c
 
-ifeq ($(KERNELRELEASE),)
+ifeq ($(PATCHLEVEL),)
 
 include autoMakefile
 
-ifeq (@MODULES_TRUE@,)
-$(foreach MODULE,$(MODULES),$(MODULE)@KMODEXT@): FORCE
-       $(MAKE) @ARCH_UM@ -C $(LINUX) SUBDIRS=$(PWD) modules
-FORCE:
-endif
+tags:
+       rm -f $(top_srcdir)/TAGS
+       ETAGSF=`etags --version | grep -iq exuberant && \
+               echo "-I __initdata,__exitdata,EXPORT_SYMBOL"`; \
+       find $(top_srcdir) -name '*.[hc]' | xargs etags $$ETAGSF -a
+
+       rm -f $(top_srcdir)/tags
+       CTAGSF=`ctags --version | grep -iq exuberant && \
+               echo "-I __initdata,__exitdata,EXPORT_SYMBOL"`; \
+       find $(top_srcdir) -name '*.[hc]' | xargs ctags $$CTAGSF -a
 
 else
 
-# we want to use -O0 for UML, unless it's already set (ie, in the
-# socknal where we need to build with -O2 so that htonl etc. are
-# linked correctly
-ifeq ($(filter -O%,$(EXTRA_CFLAGS)),)
-EXTRA_CFLAGS += @UML_CFLAGS@
-endif
-EXTRA_CFLAGS += @EXTRA_KCFLAGS@
+include @LINUX_CONFIG@
+
+EXTRA_CFLAGS := $(EXTRA_PRE_CFLAGS)
+EXTRA_CFLAGS += @EXTRA_KCFLAGS@ @UML_CFLAGS@
+EXTRA_CFLAGS += $(EXTRA_POST_CFLAGS)
 
 obj-m := $(patsubst %,%.o,$(MODULES))
 
@@ -47,6 +50,8 @@ O_TARGET := $(firstword $(obj-m))
 obj-y := $($(firstword $(MODULES))-objs)
 export-objs := $(obj-y) $(filter-out $(O_TARGET),$(obj-m))
 include $(TOPDIR)/Rules.make
+$(MODINCL)/%.ver: %.c
+       @true
 endif # PATCHLEVEL
 
 endif # KERNELRELEASE
diff --git a/lustre/autoMakefile.am b/lustre/autoMakefile.am
new file mode 100644 (file)
index 0000000..9b829bf
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright (C) 2001  Cluster File Systems, Inc.
+#
+# This code is issued under the GNU General Public License.
+# See the file COPYING in this distribution
+
+AUTOMAKE_OPTIONS = foreign
+
+SUBDIRS = . include portals ldiskfs lvfs obdclass lov ldlm ptlrpc      \
+       obdecho osc mdc mds obdfilter ost llite cobd ptlbd snapfs smfs \
+       liblustre doc utils tests conf scripts
+
+EXTRA_DIST = BUGS FDL Rules.in kernel_patches kernel-tests/Makefile    \
+       README.kernel-source
+
+if MODULES
+all-am: modules
+
+if !LINUX25
+DEP = dep
+dep: .depend
+
+.depend:
+       $(MAKE) $(ARCH_UM) -C $(LINUX) -f $(PWD)/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) -o scripts -o include/config/MARKER _sfdep_$(PWD) _FASTDEP_ALL_SUB_DIRS="$(PWD)"
+endif
+
+if LDISKFS
+LDISKFS = ldiskfs-sources
+ldiskfs-sources:
+       $(MAKE) sources -C ldiskfs
+endif
+
+lvfs-sources:
+       $(MAKE) sources -C lvfs
+
+modules: lustre_build_version $(DEP) $(LDISKFS) lvfs-sources
+       $(MAKE) $(ARCH_UM) -C $(LINUX) -f $(PWD)/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) SUBDIRS=$(PWD) -o tmp_include_depends -o scripts -o include/config/MARKER $@
+
+lustre_build_version:
+       perl $(top_builddir)/scripts/version_tag.pl $(top_srcdir) $(top_builddir) > tmpver
+       echo "#define LUSTRE_RELEASE @RELEASE@" >> tmpver
+       cmp -s $(top_builddir)/include/linux/lustre_build_version.h tmpver \
+                2> /dev/null &&                                            \
+                $(RM) tmpver ||                                            \
+                mv tmpver $(top_builddir)/include/linux/lustre_build_version.h
+
+endif # MODULES
+
+dist-hook:
+       find $(distdir) -name .deps | xargs rm -rf
+       find $(distdir) -name CVS | xargs rm -rf
+
+rpms: dist Makefile
+       rpmbuild -ta $(distdir).tar.gz
+
+CSTK=/tmp/checkstack
+CSTKO=/tmp/checkstack.orig
+
+checkstack:
+       [ -f ${CSTK} -a ! -s ${CSTKO} ] && mv ${CSTK} ${CSTKO} || true
+       for i in ${SUBDIRS} portals/knals/*; do                              \
+               MOD=$$i/`basename $$i`.o;                                    \
+               [ -f $$MOD ] && objdump -d $$MOD | perl tests/checkstack.pl; \
+       done | sort -nr > ${CSTK}
+       [ -f ${CSTKO} ] && ! diff -u ${CSTKO} ${CSTK} || head -30 ${CSTK}
+
+checkstack-update:
+       [ -f ${CSTK} ] && mv ${CSTK} ${CSTKO}
+
+checkstack-clean:
+       rm -f ${CSTK} ${CSTKO}
index 3ed60b1..c7588e4 100644 (file)
@@ -65,5 +65,12 @@ check_version() {
 
 check_version automake "1.7.8"
 check_version autoconf "2.57"
-echo "Running autoreconf..."
-autoreconf -fi
+echo "Running aclocal..."
+aclocal
+echo "Running autoheader..."
+autoheader
+echo "Running automake..."
+automake -a -c
+echo "Running autoconf..."
+autoconf
+
index 4c4a6ed..642e2e6 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.cmd
 .*.flags
 .tmp_versions
+.depend
index 7a7fcdc..ab8b4db 100644 (file)
@@ -3,8 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulefs_DATA := cobd$(KMODEXT)
+endif
 
 DIST_SOURCES = $(cobd-objs:.o=.c)
-
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
index 9bcd1c2..c42dab1 100644 (file)
@@ -234,22 +234,22 @@ static int cobd_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
 }
 
 static struct obd_ops cobd_ops = {
-        o_owner:                THIS_MODULE,
+        .o_owner                = THIS_MODULE,
 
-        o_setup:                cobd_setup,
-        o_cleanup:              cobd_cleanup,
+        .o_setup                = cobd_setup,
+        .o_cleanup              = cobd_cleanup,
 
-        o_connect:              cobd_connect,
-        o_disconnect:           cobd_disconnect,
+        .o_connect              = cobd_connect,
+        .o_disconnect           = cobd_disconnect,
 
-        o_get_info:             cobd_get_info,
-        o_statfs:               cobd_statfs,
+        .o_get_info             = cobd_get_info,
+        .o_statfs               = cobd_statfs,
 
-        o_getattr:              cobd_getattr,
-        o_preprw:               cobd_preprw,
-        o_commitrw:             cobd_commitrw,
-        o_brw:                  cobd_brw,
-        o_iocontrol:            cobd_iocontrol,
+        .o_getattr              = cobd_getattr,
+        .o_preprw               = cobd_preprw,
+        .o_commitrw             = cobd_commitrw,
+        .o_brw                  = cobd_brw,
+        .o_iocontrol            = cobd_iocontrol,
 };
 
 static int __init cobd_init(void)
index 47977cc..035b4e8 100644 (file)
@@ -5,7 +5,7 @@
 
 AC_INIT
 AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(lustre, HEAD)
+AM_INIT_AUTOMAKE(lustre, b_smallfix)
 # AM_MAINTAINER_MODE
 
 # Four main targets: lustre kernel modules, utilities, tests, and liblustre
@@ -17,6 +17,14 @@ AC_ARG_ENABLE([modules],
 AC_MSG_RESULT([$enable_modules])
 AM_CONDITIONAL(MODULES, test x$enable_modules = xyes)
 
+AC_MSG_CHECKING([whether to build Lustre library])
+AC_ARG_ENABLE([liblustre],
+       AC_HELP_STRING([--disable-liblustre],
+                       [disable building of Lustre library]),
+       [],[enable_liblustre='yes'])
+AC_MSG_RESULT([$enable_liblustre])
+AM_CONDITIONAL(LIBLUSTRE, test x$enable_liblustre = xyes)
+
 AC_MSG_CHECKING([whether to build utilities])
 AC_ARG_ENABLE([utils],
        AC_HELP_STRING([--disable-utils],
@@ -112,36 +120,13 @@ AC_ARG_WITH([sysio],
        ])
 AC_MSG_RESULT([$SYSIO_PATH])
 
-AC_MSG_CHECKING([libsysio exists and ready for use])
-
-if test -r $SYSIO_PATH/src/libsysio.a; then
-       valid_libsysio=yes
-       AC_MSG_RESULT([yes])
-       AC_SUBST(SYSIO)
-else
-       valid_libsysio=no
-       AC_MSG_RESULT([no])
-fi
-
-AC_MSG_CHECKING([whether to build Lustre library])
-AC_ARG_ENABLE([liblustre],
-       AC_HELP_STRING([--disable-liblustre],
-                       [disable building of Lustre library]),
-       [],[enable_liblustre='yes'])
-
-if test x$valid_libsysio != xyes; then
-       enable_liblustre=no
-       AC_MSG_RESULT([$enable_liblustre])
-       
-       echo "Nevertheless liblustre was enabled for build, \
-no valid libsysio is found and liblustre building will be \
-disabled. Make sure that valid libsysio exists and built \
-at $SYSIO_PATH."
-else
-       AC_MSG_RESULT([$enable_liblustre])
-fi
-
-AM_CONDITIONAL(LIBLUSTRE, test x$enable_liblustre = xyes)
+AC_CHECK_FILE([$SYSIO_PATH/src/libsysio.a],[],
+       [
+               if test x$enable_liblustre = xyes ; then
+                  AC_MSG_ERROR([A built libsysio tree is required for building liblustre.])
+               fi
+       ])
+AC_SUBST(SYSIO)
 
 #build mpi-tests 
 AC_MSG_CHECKING([whether to build mpitests])
@@ -192,12 +177,10 @@ AM_CONDITIONAL(TESTS, test x$enable_tests = xyes)
 
 AM_CONFIG_HEADER(include/config.h)
 
-# files that are in AC_OUTPUT but need to be executable
-AC_CONFIG_COMMANDS([chmod-lconf],[chmod +x utils/lconf])
-
 AC_OUTPUT([
 Makefile
 Rules
+autoMakefile
 cobd/Makefile
 cobd/autoMakefile
 conf/Makefile
@@ -232,8 +215,10 @@ ost/Makefile
 ost/autoMakefile
 portals/Kernelenv
 portals/Makefile
+portals/autoMakefile
 portals/doc/Makefile
 portals/knals/Makefile
+portals/knals/autoMakefile
 portals/knals/gmnal/Makefile
 portals/knals/gmnal/autoMakefile
 portals/knals/ibnal/Makefile
@@ -269,5 +254,4 @@ snapfs/utils/Makefile
 tests/Makefile
 utils/Lustre/Makefile
 utils/Makefile
-utils/lconf
 ])
index 7b78c04..a8dd680 100644 (file)
@@ -3,6 +3,7 @@ config.log
 config.status
 configure
 config.h
+config.h.in
 stamp-h
 stamp-h1
 stamp-h.in
diff --git a/lustre/include/config.h.in b/lustre/include/config.h.in
deleted file mode 100644 (file)
index 98a2011..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/* include/config.h.in.  Generated from configure.in by autoheader.  */
-
-/* build ldiskfs as a module */
-#undef CONFIG_LDISKFS_FS_MODULE
-
-/* enable fs security */
-#undef CONFIG_LDISKFS_FS_SECURITY
-
-/* enable extended attributes for ldiskfs */
-#undef CONFIG_LDISKFS_FS_XATTR
-
-/* enable posix acls */
-#undef CONFIG_LDISKFS_POSIX_ACL
-
-/* this kernel contains Red Hat 2.4.20 patches */
-#undef CONFIG_RH_2_4_20
-
-/* kernel has cpu affinity support */
-#undef CPU_AFFINITY
-
-/* Building with Cray Portals */
-#undef CRAY_PORTALS
-
-/* Use the Pinger */
-#undef ENABLE_PINGER
-
-/* the kernel passes struct file to direct_IO */
-#undef HAVE_DIO_FILE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* struct kiobuf has a dovary field */
-#undef HAVE_KIOBUF_DOVARY
-
-/* libefence support is requested */
-#undef HAVE_LIBEFENCE
-
-/* readline library is available */
-#undef HAVE_LIBREADLINE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* struct page has a list field */
-#undef HAVE_PAGE_LIST
-
-/* the kernel defines PDE */
-#undef HAVE_PDE
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* IOCTL Buffer Size */
-#undef OBD_MAX_IOCTL_BUFFER
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* The size of a `unsigned long long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG_LONG
-
-/* use zero-copy TCP */
-#undef SOCKNAL_ZC
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
index 842a5da..af80f44 100644 (file)
@@ -268,10 +268,10 @@ extern int echo_client_init(void);
 
 #define EXPORT_SYMBOL(S)
 
-typedef int spinlock_t;
+typedef struct { } spinlock_t;
 typedef __u64 kdev_t;
 
-#define SPIN_LOCK_UNLOCKED 0
+#define SPIN_LOCK_UNLOCKED (spinlock_t) { }
 #define LASSERT_SPIN_LOCKED(lock) do {} while(0)
 
 static inline void spin_lock(spinlock_t *l) {return;}
index 377bef6..a785ada 100644 (file)
@@ -5,3 +5,5 @@
 
 
 pkginclude_HEADERS = lustre_user.h liblustreapi.h
+
+EXTRA_DIST = $(pkginclude_HEADERS)
index 959a2d5..7360935 100644 (file)
@@ -1,5 +1,24 @@
+ifeq ($(PATCHLEVEL),)
+
+ifneq ($(LUSTRE_LINUX_CONFIG),)
+include $(LUSTRE_LINUX_CONFIG)
+endif
+include Makefile
+
+else
+
+ifneq ($(LUSTRE_KERNEL_TEST),)
+ifeq ($(PATCHLEVEL),4)
+all: $(LUSTRE_KERNEL_TEST)
+else
+extra-y = $(LUSTRE_KERNEL_TEST)
+endif
+endif
+
 obj-m := conftest.o
 
 ifeq ($(PATCHLEVEL),4)
 include $(TOPDIR)/Rules.make
 endif
+
+endif
diff --git a/lustre/kernel_patches/kernel_configs/kernel-2.4.21-suse-2.4.21-2-x86_64.config b/lustre/kernel_patches/kernel_configs/kernel-2.4.21-suse-2.4.21-2-x86_64.config
new file mode 100644 (file)
index 0000000..eca7425
--- /dev/null
@@ -0,0 +1,2036 @@
+#
+# Automatically generated by make menuconfig: don't edit
+#
+CONFIG_X86_64=y
+CONFIG_X86=y
+# CONFIG_ISA is not set
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_EARLY_PRINTK=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_MK8=y
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_TSC=y
+CONFIG_X86_GOOD_APIC=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_PROC_INTF=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_24_API=y
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_POWERNOW_K8_DBG is not set
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MCA is not set
+# CONFIG_EISA is not set
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_MTRR=y
+# CONFIG_SMP is not set
+CONFIG_HPET_TIMER=y
+CONFIG_GART_IOMMU=y
+CONFIG_X86_UP_IOAPIC=y
+CONFIG_MCE=y
+# CONFIG_K8_NUMA is not set
+
+#
+# General setup
+#
+# CONFIG_DESKTOP is not set
+CONFIG_NET=y
+CONFIG_EVLOG=y
+CONFIG_EVLOG_BUFSIZE=128
+CONFIG_EVLOG_FWPRINTK=y
+# CONFIG_EVLOG_PRINTKWLOC is not set
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+CONFIG_HOTPLUG_PCI=m
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_IBM is not set
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_AMD=m
+CONFIG_SYSVIPC=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_SYSCTL=y
+CONFIG_MAX_USER_RT_PRIO=100
+CONFIG_MAX_RT_PRIO=0
+CONFIG_KCORE_ELF=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM=y
+CONFIG_IA32_EMULATION=y
+
+#
+# ACPI Support
+#
+CONFIG_ACPI=y
+# CONFIG_ACPI_HT_ONLY is not set
+CONFIG_ACPI_INITRD=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_ASUS=m
+CONFIG_ACPI_TOSHIBA=m
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_RELAXED_AML=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_PARTITIONS=m
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+# CONFIG_NFTL_RW is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_OBSOLETE_CHIPS=y
+CONFIG_MTD_AMDSTD=m
+CONFIG_MTD_SHARP=m
+CONFIG_MTD_JEDEC=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP_START=8000000
+CONFIG_MTD_PHYSMAP_LEN=4000000
+CONFIG_MTD_PHYSMAP_BUSWIDTH=2
+CONFIG_MTD_PNC2000=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_ELAN_104NC=m
+CONFIG_MTD_DILNETPC=m
+CONFIG_MTD_DILNETPC_BOOTSIZE=80000
+CONFIG_MTD_MIXMEM=m
+CONFIG_MTD_OCTAGON=m
+CONFIG_MTD_VMAX=m
+CONFIG_MTD_SCx200_DOCFLASH=m
+CONFIG_MTD_L440GX=m
+# CONFIG_MTD_AMD76XROM is not set
+CONFIG_MTD_ICH2ROM=m
+CONFIG_MTD_NETtel=m
+# CONFIG_MTD_SCB2_FLASH is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+CONFIG_MTD_PMC551_BUGFIX=y
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLKMTD=m
+CONFIG_MTD_DOC1000=m
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOCPROBE=m
+CONFIG_MTD_DOCPROBE_ADVANCED=y
+CONFIG_MTD_DOCPROBE_ADDRESS=0000
+CONFIG_MTD_DOCPROBE_HIGH=y
+CONFIG_MTD_DOCPROBE_55AA=y
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=m
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_CML1=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_AMIGA is not set
+# CONFIG_PARPORT_MFC3 is not set
+# CONFIG_PARPORT_ATARI is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_SUNBPP is not set
+CONFIG_PARPORT_OTHER=y
+CONFIG_PARPORT_1284=y
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_DEV_XD is not set
+CONFIG_PARIDE=m
+CONFIG_PARIDE_PARPORT=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_CIPHER_TWOFISH=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=128000
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_STATS=y
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_BLK_DEV_LVM=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_BLK_DEV_DM_MIRROR=m
+
+#
+# Cryptography support (CryptoAPI)
+#
+CONFIG_CRYPTO=y
+CONFIG_CIPHERS=y
+CONFIG_CIPHER_AES=m
+CONFIG_CIPHER_3DES=m
+CONFIG_CIPHER_NULL=m
+CONFIG_CIPHER_DES=m
+CONFIG_DIGESTS=y
+CONFIG_DIGEST_MD5=m
+CONFIG_DIGEST_SHA1=m
+CONFIG_CRYPTODEV=y
+CONFIG_CRYPTOLOOP=m
+CONFIG_CRYPTOLOOP_ATOMIC=y
+# CONFIG_CRYPTOLOOP_IV_HACK is not set
+# CONFIG_CRYPTOLOOP_DEBUG is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IPSEC=m
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_DEBUG_DISABLE_DEFAULT=y
+CONFIG_IPSEC_TUNNEL=y
+CONFIG_TUX=m
+CONFIG_TUX_EXTCGI=y
+CONFIG_TUX_EXTENDED_LOG=y
+# CONFIG_TUX_DEBUG is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_FWMARK=y
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_LARGE_TABLES=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_INET_ECN=y
+CONFIG_SYN_COOKIES=y
+CONFIG_IP_IPSEC=m
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_IPLIMIT=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_AMANDA=m
+# CONFIG_IP_NF_NAT_LOCAL is not set
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_COMPAT_IPCHAINS=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_COMPAT_IPFWADM=m
+CONFIG_IP_NF_NAT_NEEDED=y
+
+#
+#   IP: Virtual Server Configuration
+#
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IPV6=m
+# CONFIG_IPV6_DEBUG is not set
+CONFIG_IPV6_IM=y
+CONFIG_IPV6_MODULE_IP_GRE=y
+CONFIG_IPV6_ISATAP=y
+CONFIG_IPV6_PREFIXLIST=y
+CONFIG_IPV6_6TO4_NEXTHOP=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MLD6_ALL_DONE is not set
+# CONFIG_IPV6_NODEINFO is not set
+# CONFIG_IPV6_ZONE is not set
+CONFIG_IPV6_DROP_FAKE_V4MAPPED=y
+
+#
+#   IPv6: Netfilter Configuration
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IPV6_IPSEC=y
+CONFIG_IPV6_IPSEC_TUNNEL=y
+CONFIG_IPV6_IPV6_TUNNEL=m
+CONFIG_IPV6_MOBILITY=m
+CONFIG_IPV6_MOBILITY_CN=m
+CONFIG_IPV6_MOBILITY_MN=m
+CONFIG_IPV6_MOBILITY_HA=m
+# CONFIG_IPV6_MOBILITY_DEBUG is not set
+# CONFIG_SHARED_IPV6_CARDS is not set
+CONFIG_KHTTPD=m
+CONFIG_KHTTPD_IPV6=y
+# CONFIG_ATM is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+
+#
+# Appletalk devices
+#
+CONFIG_DEV_APPLETALK=y
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_SIOCGIFCONF=y
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_BRIDGE=m
+CONFIG_X25=m
+CONFIG_LAPB=m
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+CONFIG_ECONET=m
+# CONFIG_ECONET_AUNUDP is not set
+# CONFIG_ECONET_NATIVE is not set
+CONFIG_WAN_ROUTER=m
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+
+#
+# Telephony Support
+#
+CONFIG_PHONE=m
+CONFIG_PHONE_IXJ=m
+CONFIG_PHONE_IXJ_PCMCIA=m
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_IDEDISK_STROKE=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEFLOPPY=y
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_BLK_DEV_CMD640=y
+CONFIG_BLK_DEV_CMD640_ENHANCED=y
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_OFFBOARD=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+CONFIG_IDEDMA_ONLYDISK=y
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+# CONFIG_BLK_DEV_ADMA100 is not set
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+# CONFIG_AMD74XX_OVERRIDE is not set
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+CONFIG_PDC202XX_BURST=y
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+CONFIG_PDC202XX_FORCE=y
+# CONFIG_BLK_DEV_RZ1000 is not set
+CONFIG_BLK_DEV_SC1200=y
+# CONFIG_BLK_DEV_SVWKS is not set
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+CONFIG_BLK_DEV_CENATEK=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_IDE_MODES=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_MAX_MAJORS=144
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_SR_EXTRA_DEVS=4
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=m
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+# CONFIG_SCSI_7000FASST is not set
+CONFIG_SCSI_ACARD=m
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC7XXX_OLD=m
+CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT=y
+CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=24
+CONFIG_AIC7XXX_OLD_PROC_STATS=y
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+# CONFIG_SCSI_DTC3280 is not set
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IPS_OLD=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_PPSCSI=m
+CONFIG_PPSCSI_T348=m
+CONFIG_PPSCSI_T358=m
+CONFIG_PPSCSI_VPI0=m
+CONFIG_PPSCSI_VPI2=m
+CONFIG_PPSCSI_ONSCSI=m
+CONFIG_PPSCSI_SPARCSI=m
+CONFIG_PPSCSI_EPSA2=m
+CONFIG_PPSCSI_EPST=m
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_NCR53C7xx=m
+# CONFIG_SCSI_NCR53C7xx_sync is not set
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=80
+CONFIG_SCSI_NCR53C8XX_PROFILE=y
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+# CONFIG_SCSI_PAS16 is not set
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+CONFIG_SCSI_QLOGIC_FC_FIRMWARE=y
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLOGIC_QLA2XXX=y
+CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2100=m
+CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200=m
+CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x_TRMS1040=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+# CONFIG_SCSI_T128 is not set
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_DEBUG=m
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+CONFIG_FUSION_ISENSE=m
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+CONFIG_IEEE1394=m
+CONFIG_IEEE1394_PCILYNX=m
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_AMDTP=m
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+# CONFIG_IEEE1394_OUI_DB is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+# CONFIG_ARCNET_COM20020_ISA is not set
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_ETHERTAP=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+CONFIG_HAPPYMEAL=m
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_EL1 is not set
+# CONFIG_EL2 is not set
+# CONFIG_ELPLUS is not set
+# CONFIG_EL16 is not set
+# CONFIG_ELMC is not set
+# CONFIG_ELMC_II is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+# CONFIG_WD80x3 is not set
+# CONFIG_ULTRAMCA is not set
+# CONFIG_ULTRA is not set
+# CONFIG_ULTRA32 is not set
+# CONFIG_SMC9194 is not set
+CONFIG_NET_VENDOR_RACAL=y
+# CONFIG_NI5010 is not set
+# CONFIG_NI52 is not set
+# CONFIG_NI65 is not set
+CONFIG_HP100=m
+# CONFIG_NET_ISA is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_PCNET32_OLD=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_APRICOT is not set
+CONFIG_NET_BCM4400=m
+# CONFIG_CS89x0 is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+CONFIG_EEPRO100=m
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+# CONFIG_LNE390 is not set
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NETGEAR_GA621=m
+CONFIG_NETGEAR_GA622=m
+CONFIG_NE2K_PCI=m
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_TC35815=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_NET_POCKET=y
+# CONFIG_DE600 is not set
+# CONFIG_DE620 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_SK98LIN_T1=y
+CONFIG_SK98LIN_T3=y
+CONFIG_SK98LIN_T8=y
+CONFIG_SK98LIN_T6=y
+CONFIG_SK98LIN_T9=y
+CONFIG_SK98LIN_T4=y
+CONFIG_SK98LIN_T7=y
+CONFIG_SK98LIN_T2=y
+CONFIG_SK98LIN_T5=y
+CONFIG_SK9DLIN=m
+CONFIG_TIGON3=m
+CONFIG_NET_BROADCOM=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+CONFIG_SKFP=m
+CONFIG_NETCONSOLE=m
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+CONFIG_ROADRUNNER_LARGE_RINGS=y
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+CONFIG_STRIP=m
+CONFIG_WAVELAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+CONFIG_AIRONET4500_PROC=m
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+CONFIG_IPHASE5526=m
+CONFIG_RCPCI=m
+CONFIG_SHAPER=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_ARCNET_COM20020_CS=m
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_AIRONET4500_CS=m
+
+#
+# Amateur Radio support
+#
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_SCC_DELAY=y
+CONFIG_SCC_TRXECHO=y
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_SOUNDMODEM=m
+CONFIG_SOUNDMODEM_SBC=y
+CONFIG_SOUNDMODEM_WSS=y
+CONFIG_SOUNDMODEM_AFSK1200=y
+CONFIG_SOUNDMODEM_AFSK2400_7=y
+CONFIG_SOUNDMODEM_AFSK2400_8=y
+CONFIG_SOUNDMODEM_AFSK2666=y
+CONFIG_SOUNDMODEM_HAPN4800=y
+CONFIG_SOUNDMODEM_PSK4800=y
+CONFIG_SOUNDMODEM_FSK9600=y
+CONFIG_YAM=m
+
+#
+# IrDA (infrared) support
+#
+CONFIG_IRDA=m
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+CONFIG_IRTTY_SIR=m
+CONFIG_IRPORT_SIR=m
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_USB_IRDA=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+# CONFIG_TOSHIBA_OLD is not set
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+CONFIG_ISDN_X25=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DRV_LOOP=m
+CONFIG_ISDN_DIVERSION=m
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+# CONFIG_HISAX_TELES_CS is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+# CONFIG_HISAX_AVM_A1_CS is not set
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_USB_AUERISDN=m
+
+#
+# Active ISDN cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_DRV_EICON=y
+CONFIG_ISDN_DRV_EICON_DIVAS=m
+CONFIG_ISDN_DRV_EICON_OLD=m
+CONFIG_ISDN_DRV_EICON_PCI=y
+CONFIG_ISDN_DRV_EICON_ISA=y
+CONFIG_ISDN_DRV_TPAM=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_ECC=m
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+CONFIG_SERIAL_MULTIPORT=y
+CONFIG_HUB6=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_COMPUTONE=m
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_ESPSERIAL is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_ISI=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_N_HDLC=m
+CONFIG_RISCOM8=m
+CONFIG_STALDRV=y
+CONFIG_STALLION=m
+CONFIG_ISTALLION=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_TIPAR=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_PHILIPSPAR=m
+# CONFIG_I2C_ELV is not set
+# CONFIG_I2C_VELLEMAN is not set
+CONFIG_SCx200_I2C=m
+CONFIG_SCx200_I2C_SCL=12
+CONFIG_SCx200_I2C_SDA=13
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_ALGOPCF=m
+# CONFIG_I2C_ELEKTOR is not set
+CONFIG_I2C_MAINBOARD=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_HYDRA=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+# CONFIG_I2C_I810 is not set
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS645=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_PROC=m
+
+#
+# Hardware sensors support
+#
+CONFIG_SENSORS=y
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1024=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_FSCSCY=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_MAXILIFE=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MTP008=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+# CONFIG_SENSORS_LM92 is not set
+CONFIG_SENSORS_SIS5595=m
+# CONFIG_SENSORS_SMSC47M1 is not set
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_OTHER=y
+CONFIG_SENSORS_BT869=m
+CONFIG_SENSORS_DDCMON=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_MATORB=m
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+
+#
+# Mice
+#
+CONFIG_BUSMOUSE=m
+CONFIG_ATIXL_BUSMOUSE=m
+CONFIG_LOGIBUSMOUSE=m
+CONFIG_MS_BUSMOUSE=m
+CONFIG_MOUSE=y
+CONFIG_PSMOUSE=y
+CONFIG_82C710_MOUSE=y
+CONFIG_PC110_PAD=m
+CONFIG_MK712_MOUSE=m
+
+#
+# Joysticks
+#
+CONFIG_INPUT_GAMEPORT=m
+CONFIG_INPUT_NS558=m
+CONFIG_INPUT_LIGHTNING=m
+CONFIG_INPUT_PCIGAME=m
+CONFIG_INPUT_CS461X=m
+CONFIG_INPUT_EMU10K1=m
+CONFIG_INPUT_FM801=m
+CONFIG_INPUT_SERIO=m
+CONFIG_INPUT_SERPORT=m
+CONFIG_INPUT_ANALOG=m
+CONFIG_INPUT_A3D=m
+CONFIG_INPUT_ADI=m
+CONFIG_INPUT_COBRA=m
+CONFIG_INPUT_GF2K=m
+CONFIG_INPUT_GRIP=m
+CONFIG_INPUT_INTERACT=m
+CONFIG_INPUT_TMDC=m
+CONFIG_INPUT_SIDEWINDER=m
+CONFIG_INPUT_IFORCE_USB=m
+CONFIG_INPUT_IFORCE_232=m
+CONFIG_INPUT_WARRIOR=m
+CONFIG_INPUT_MAGELLAN=m
+CONFIG_INPUT_SPACEORB=m
+CONFIG_INPUT_SPACEBALL=m
+CONFIG_INPUT_STINGER=m
+CONFIG_INPUT_DB9=m
+CONFIG_INPUT_GAMECON=m
+CONFIG_INPUT_TURBOGRAFX=m
+CONFIG_QIC02_TAPE=m
+CONFIG_QIC02_DYNCONF=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_PANIC_EVENT=y
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_KCS=m
+CONFIG_IPMI_WATCHDOG=m
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_PCWATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_WAFER_WDT=m
+# CONFIG_I810_TCO is not set
+CONFIG_MIXCOMWD=m
+CONFIG_60XX_WDT=m
+CONFIG_SC1200_WDT=m
+CONFIG_SCx200_WDT=m
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_W83877F_WDT=m
+CONFIG_WDT=m
+CONFIG_WDTPCI=m
+CONFIG_WDT_501=y
+CONFIG_WDT_501_FAN=y
+CONFIG_MACHZ_WDT=m
+CONFIG_DEADMAN=m
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_AMD7XX_TCO=m
+CONFIG_SCx200_GPIO=m
+CONFIG_AMD_RNG=m
+CONFIG_INTEL_RNG=m
+CONFIG_AMD_PM768=m
+CONFIG_NVRAM=m
+CONFIG_RTC=y
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# Ftape, the floppy tape device driver
+#
+CONFIG_FTAPE=m
+CONFIG_ZFTAPE=m
+CONFIG_ZFT_DFLT_BLK_SZ=10240
+CONFIG_ZFT_COMPRESSOR=m
+CONFIG_FT_NR_BUFFERS=3
+CONFIG_FT_PROC_FS=y
+CONFIG_FT_NORMAL_DEBUG=y
+# CONFIG_FT_FULL_DEBUG is not set
+# CONFIG_FT_NO_TRACE is not set
+# CONFIG_FT_NO_TRACE_AT_ALL is not set
+CONFIG_FT_STD_FDC=y
+# CONFIG_FT_MACH2 is not set
+# CONFIG_FT_PROBE_FC10 is not set
+# CONFIG_FT_ALT_FDC is not set
+CONFIG_FT_FDC_THR=8
+CONFIG_FT_FDC_MAX_RATE=2000
+CONFIG_FT_ALPHA_CLOCK=0
+CONFIG_AGP=y
+CONFIG_AGP_AMD_8151=y
+# CONFIG_AGP_INTEL is not set
+# CONFIG_AGP_I810 is not set
+# CONFIG_AGP_VIA is not set
+# CONFIG_AGP_AMD is not set
+# CONFIG_AGP_SIS is not set
+# CONFIG_AGP_ALI is not set
+# CONFIG_AGP_SWORKS is not set
+# CONFIG_AGP_NVIDIA is not set
+CONFIG_DRM=y
+# CONFIG_DRM_OLD is not set
+CONFIG_DRM_NEW=y
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+# CONFIG_DRM_I810_XFREE_41 is not set
+CONFIG_DRM_I830=m
+CONFIG_DRM_MGA=m
+# CONFIG_DRM_SIS is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_MWAVE=m
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+CONFIG_VIDEO_PROC_FS=y
+CONFIG_I2C_PARPORT=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_TUNER_3036=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZR36120=m
+# CONFIG_VIDEO_MEYE is not set
+
+#
+# Radio Adapters
+#
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+# CONFIG_DXR3 is not set
+
+#
+# File systems
+#
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QIFACE_COMPAT=y
+# CONFIG_QIFACE_V1 is not set
+CONFIG_QIFACE_V2=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_XATTR_USER=y
+CONFIG_REISERFS_FS_XATTR_TRUSTED=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_XATTR_SHARING=y
+CONFIG_EXT3_FS_XATTR_USER=y
+CONFIG_EXT3_FS_XATTR_TRUSTED=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_JBD=y
+CONFIG_JBD_DEBUG=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_UMSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FATX_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS_FS=m
+CONFIG_JFFS_FS_VERBOSE=0
+CONFIG_JFFS_PROC_FS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_CRAMFS=m
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_MINIX_FS=y
+CONFIG_VXFS_FS=m
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+CONFIG_HPFS_FS=m
+CONFIG_PROC_FS=y
+CONFIG_PROC_CONFIG=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+CONFIG_QNX4FS_FS=m
+# CONFIG_QNX4FS_RW is not set
+CONFIG_ROMFS_FS=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_XATTR_SHARING=y
+CONFIG_EXT2_FS_XATTR_USER=y
+CONFIG_EXT2_FS_XATTR_TRUSTED=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_SYSV_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_RW=y
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_POSIX_ACL=y
+# CONFIG_XFS_RT is not set
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_DMAPI=y
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_PAGEBUF_DEBUG is not set
+# CONFIG_OCFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_CODA_FS=m
+CONFIG_INTERMEZZO_FS=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_ACL=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_ACL=y
+CONFIG_NFSD_TCP=y
+CONFIG_NFSD_FHALIAS=y
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_CIFS=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_ZISOFS_FS=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_OSF_PARTITION=y
+# CONFIG_AMIGA_PARTITION is not set
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_XBOX_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+CONFIG_EFI_PARTITION=y
+CONFIG_SMB_NLS=y
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+CONFIG_MDA_CONSOLE=m
+
+#
+# Frame-buffer support
+#
+CONFIG_FB=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_CLGEN=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PM2_PCI=y
+CONFIG_FB_PM3=m
+# CONFIG_UNICON is not set
+# CONFIG_UNICON_GB is not set
+# CONFIG_UNICON_GBK is not set
+# CONFIG_UNICON_BIG5 is not set
+# CONFIG_UNICON_JIS is not set
+# CONFIG_UNICON_KSCM is not set
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_HGA=m
+CONFIG_VIDEO_SELECT=y
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G450=y
+CONFIG_FB_MATROX_G100=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_PROC=m
+CONFIG_FB_MATROX_MULTIHEAD=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_RADEON=m
+CONFIG_FB_ATY128=m
+# CONFIG_FB_INTEL is not set
+# CONFIG_FB_SIS is not set
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_VMWARE_SVGA=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FBCON_SPLASHSCREEN=y
+CONFIG_FBCON_CFB16=y
+CONFIG_FBCON_ADVANCED=y
+CONFIG_FBCON_MFB=m
+CONFIG_FBCON_CFB2=m
+CONFIG_FBCON_CFB4=m
+CONFIG_FBCON_CFB8=y
+CONFIG_FBCON_CFB24=y
+CONFIG_FBCON_CFB32=y
+CONFIG_FBCON_AFB=m
+CONFIG_FBCON_ILBM=m
+CONFIG_FBCON_IPLAN2P2=m
+CONFIG_FBCON_IPLAN2P4=m
+CONFIG_FBCON_IPLAN2P8=m
+CONFIG_FBCON_MAC=m
+CONFIG_FBCON_VGA_PLANES=m
+CONFIG_FBCON_VGA=m
+CONFIG_FBCON_HGA=m
+# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
+CONFIG_FBCON_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+CONFIG_SOUND_ALI5455=m
+CONFIG_SOUND_BT878=m
+CONFIG_SOUND_CMPCI=m
+CONFIG_SOUND_CMPCI_FM=y
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_MIDI=y
+CONFIG_SOUND_CMPCI_MPUIO=330
+CONFIG_SOUND_CMPCI_JOYSTICK=y
+CONFIG_SOUND_CMPCI_CM8738=y
+# CONFIG_SOUND_CMPCI_SPDIFINVERSE is not set
+CONFIG_SOUND_CMPCI_SPDIFLOOP=y
+CONFIG_SOUND_CMPCI_SPEAKERS=2
+CONFIG_SOUND_EMU10K1=m
+CONFIG_MIDI_EMU10K1=y
+CONFIG_SOUND_FUSION=m
+CONFIG_SOUND_CS4281=m
+CONFIG_SOUND_ES1370=m
+CONFIG_SOUND_ES1371=m
+CONFIG_SOUND_ESSSOLO1=m
+CONFIG_SOUND_MAESTRO=m
+CONFIG_SOUND_MAESTRO3=m
+CONFIG_SOUND_FORTE=m
+CONFIG_SOUND_ICH=m
+CONFIG_SOUND_RME96XX=m
+CONFIG_SOUND_SONICVIBES=m
+CONFIG_SOUND_TRIDENT=m
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+CONFIG_SOUND_VIA82CXXX=m
+CONFIG_MIDI_VIA82CXXX=y
+CONFIG_SOUND_OSS=m
+CONFIG_SOUND_TRACEINIT=y
+CONFIG_SOUND_DMAP=y
+CONFIG_SOUND_AD1816=m
+CONFIG_SOUND_AD1889=m
+CONFIG_SOUND_SGALAXY=m
+CONFIG_SOUND_ADLIB=m
+CONFIG_SOUND_ACI_MIXER=m
+CONFIG_SOUND_CS4232=m
+CONFIG_SOUND_SSCAPE=m
+CONFIG_SOUND_GUS=m
+# CONFIG_SOUND_GUS16 is not set
+CONFIG_SOUND_GUSMAX=y
+CONFIG_SOUND_VMIDI=m
+CONFIG_SOUND_TRIX=m
+CONFIG_SOUND_MSS=m
+CONFIG_SOUND_MPU401=m
+CONFIG_SOUND_NM256=m
+CONFIG_SOUND_MAD16=m
+CONFIG_MAD16_OLDCARD=y
+CONFIG_SOUND_PAS=m
+# CONFIG_PAS_JOYSTICK is not set
+CONFIG_SOUND_PSS=m
+CONFIG_PSS_MIXER=y
+# CONFIG_PSS_HAVE_BOOT is not set
+CONFIG_SOUND_SB=m
+CONFIG_SOUND_AWE32_SYNTH=m
+CONFIG_SOUND_KAHLUA=m
+CONFIG_SOUND_WAVEFRONT=m
+CONFIG_SOUND_MAUI=m
+CONFIG_SOUND_YM3812=m
+CONFIG_SOUND_OPL3SA1=m
+CONFIG_SOUND_OPL3SA2=m
+CONFIG_SOUND_YMFPCI=m
+CONFIG_SOUND_YMFPCI_LEGACY=y
+CONFIG_SOUND_UART6850=m
+CONFIG_SOUND_AEDSP16=m
+CONFIG_SC6600=y
+CONFIG_SC6600_JOY=y
+CONFIG_SC6600_CDROM=4
+CONFIG_SC6600_CDROMBASE=0
+CONFIG_AEDSP16_SBPRO=y
+CONFIG_AEDSP16_MPU401=y
+CONFIG_SOUND_TVMIXER=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_BIT32_EMUL=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_VERBOSE_PRINTK=y
+CONFIG_SND_DEBUG=y
+CONFIG_SND_DEBUG_MEMORY=y
+# CONFIG_SND_DEBUG_DETECT is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_SERIALMIDI=m
+
+#
+# PCI devices
+#
+CONFIG_SND_ALI5451=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS4281=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_PDPLUS=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_HDSP=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_FM801=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VX222=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_AZT3328=m
+
+#
+# ALSA USB devices
+#
+CONFIG_SND_USB_AUDIO=m
+
+#
+# ALSA PCMCIA devices
+#
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VXP440=m
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_MIDI=m
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_HP8200e=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_DC2XX=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_SCANNER=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_HPUSBSCSI=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_OV511=m
+CONFIG_USB_PWC=m
+CONFIG_USB_SE401=m
+CONFIG_USB_STV680=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_DSBR=m
+CONFIG_USB_DABUSB=m
+# CONFIG_USB_LOGITECH_CAM is not set
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_AX8817X=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USBDNET=m
+CONFIG_USB_USBDNET_VENDOR=0000
+CONFIG_USB_USBDNET_PRODUCT=0000
+CONFIG_USB_USBDNET_CLASS=0000
+CONFIG_USB_USBDNET_SUBCLASS=0000
+CONFIG_USB_USS720=m
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SAFE_SERIAL_VENDOR=0000
+CONFIG_USB_SAFE_SERIAL_PRODUCT=0000
+CONFIG_USB_RIO500=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_TIGL=m
+CONFIG_USB_BRLVGER=m
+CONFIG_USB_LCD=m
+# CONFIG_USB_SPEEDTOUCH is not set
+
+#
+# Bluetooth support
+#
+CONFIG_BLUEZ=m
+CONFIG_BLUEZ_L2CAP=m
+CONFIG_BLUEZ_SCO=m
+CONFIG_BLUEZ_RFCOMM=m
+CONFIG_BLUEZ_RFCOMM_TTY=y
+CONFIG_BLUEZ_BNEP=m
+CONFIG_BLUEZ_BNEP_MC_FILTER=y
+CONFIG_BLUEZ_BNEP_PROTO_FILTER=y
+CONFIG_BLUEZ_CMTP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BLUEZ_HCIUSB=m
+CONFIG_BLUEZ_USB_SCO=y
+# CONFIG_BLUEZ_USB_ZERO_PACKET is not set
+CONFIG_BLUEZ_HCIUART=m
+CONFIG_BLUEZ_HCIUART_H4=y
+CONFIG_BLUEZ_HCIUART_BCSP=y
+CONFIG_BLUEZ_HCIUART_BCSP_TXCRC=y
+CONFIG_BLUEZ_HCIBFUSB=m
+CONFIG_BLUEZ_HCIDTL1=m
+CONFIG_BLUEZ_HCIBT3C=m
+CONFIG_BLUEZ_HCIBLUECARD=m
+CONFIG_BLUEZ_HCIBTUART=m
+CONFIG_BLUEZ_HCIVHCI=m
+
+#
+# Kernel hacking
+#
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_CHECKING is not set
+# CONFIG_INIT_DEBUG is not set
+# CONFIG_X86_REMOTE_DEBUG is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_LEAK is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
+CONFIG_KALLSYMS=y
+
+#
+# Library routines
+#
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_QSORT=y
+CONFIG_FW_LOADER=m
+
+#
+# Build options
+#
+CONFIG_SUSE_KERNEL=y
+CONFIG_CFGNAME="default"
+CONFIG_RELEASE=171
index f66abb9..b22d925 100644 (file)
@@ -1,7 +1,7 @@
-Index: linux-2.6.0/fs/filesystems.c
+Index: linux-2.6.4-51.0/fs/filesystems.c
 ===================================================================
---- linux-2.6.0.orig/fs/filesystems.c  2003-12-30 08:32:44.000000000 +0300
-+++ linux-2.6.0/fs/filesystems.c       2003-12-31 01:10:16.000000000 +0300
+--- linux-2.6.4-51.0.orig/fs/filesystems.c     2004-04-05 12:41:59.000000000 -0400
++++ linux-2.6.4-51.0/fs/filesystems.c  2004-04-15 14:59:56.000000000 -0400
 @@ -27,7 +27,9 @@
   */
  
@@ -13,11 +13,11 @@ Index: linux-2.6.0/fs/filesystems.c
  
  /* WARNING: This can be used only if we _already_ own a reference */
  void get_filesystem(struct file_system_type *fs)
-Index: linux-2.6.0/include/linux/fs.h
+Index: linux-2.6.4-51.0/include/linux/fs.h
 ===================================================================
---- linux-2.6.0.orig/include/linux/fs.h        2003-12-31 00:33:41.000000000 +0300
-+++ linux-2.6.0/include/linux/fs.h     2003-12-31 01:09:26.000000000 +0300
-@@ -1390,6 +1390,7 @@
+--- linux-2.6.4-51.0.orig/include/linux/fs.h   2004-04-15 14:59:50.000000000 -0400
++++ linux-2.6.4-51.0/include/linux/fs.h        2004-04-15 14:59:56.000000000 -0400
+@@ -1432,6 +1432,7 @@
  
  extern struct file_operations generic_ro_fops;
  
@@ -25,10 +25,10 @@ Index: linux-2.6.0/include/linux/fs.h
  #define special_file(m) (S_ISCHR(m)||S_ISBLK(m)||S_ISFIFO(m)||S_ISSOCK(m))
  
  extern int vfs_readlink(struct dentry *, char __user *, int, const char *);
-Index: linux-2.6.0/include/linux/ext2_fs_sb.h
+Index: linux-2.6.4-51.0/include/linux/ext2_fs_sb.h
 ===================================================================
---- linux-2.6.0.orig/include/linux/ext2_fs_sb.h        2003-05-15 20:10:39.000000000 +0400
-+++ linux-2.6.0/include/linux/ext2_fs_sb.h     2003-12-31 01:09:26.000000000 +0300
+--- linux-2.6.4-51.0.orig/include/linux/ext2_fs_sb.h   2004-04-05 12:42:07.000000000 -0400
++++ linux-2.6.4-51.0/include/linux/ext2_fs_sb.h        2004-04-15 14:59:56.000000000 -0400
 @@ -16,9 +16,11 @@
  #ifndef _LINUX_EXT2_FS_SB
  #define _LINUX_EXT2_FS_SB
@@ -42,3 +42,12 @@ Index: linux-2.6.0/include/linux/ext2_fs_sb.h
  /*
   * second extended-fs super-block data in memory
   */
+Index: linux-2.6.4-51.0/kernel/kallsyms.c
+===================================================================
+--- linux-2.6.4-51.0.orig/kernel/kallsyms.c    2004-04-05 12:42:08.000000000 -0400
++++ linux-2.6.4-51.0/kernel/kallsyms.c 2004-04-15 15:00:56.000000000 -0400
+@@ -329,3 +329,4 @@
+ EXPORT_SYMBOL(kallsyms_lookup);
+ EXPORT_SYMBOL(__print_symbol);
++EXPORT_SYMBOL(kernel_text_address);
diff --git a/lustre/kernel_patches/patches/kernel_text_address-2.6-suse.patch b/lustre/kernel_patches/patches/kernel_text_address-2.6-suse.patch
deleted file mode 100644 (file)
index c60c525..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: linux-2.6.3/arch/i386/kernel/traps.c
-===================================================================
---- linux-2.6.3.orig/arch/i386/kernel/traps.c  2004-02-23 14:04:13.000000000 -0800
-+++ linux-2.6.3/arch/i386/kernel/traps.c       2004-02-23 14:10:07.000000000 -0800
-@@ -890,3 +890,21 @@
-       trap_init_hook();
- }
-+
-+int is_kernel_text_address(unsigned long addr)
-+{
-+      if (addr < (unsigned long) &_stext ||
-+          addr > (unsigned long) &_etext ||
-+          module_text_address(addr))
-+              return 0;
-+
-+       return 1;
-+}
-+
-+int lookup_symbol(unsigned long address, char *buf, int buflen)
-+{
-+       return -ENOSYS;
-+}
-+
-+EXPORT_SYMBOL_GPL(is_kernel_text_address);
-+EXPORT_SYMBOL_GPL(lookup_symbol);
index 25d147d..ec3b64c 100644 (file)
  kernel/ksyms.c            |    1 
  12 files changed, 558 insertions(+), 128 deletions(-)
 
-Index: linux-2.4.21-suse2/fs/dcache.c
+Index: linux-2.4.21-x86_64/fs/dcache.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/dcache.c        2003-10-28 21:33:59.000000000 +0300
-+++ linux-2.4.21-suse2/fs/dcache.c     2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/fs/dcache.c       2003-10-28 10:33:59.000000000 -0800
++++ linux-2.4.21-x86_64/fs/dcache.c    2004-04-12 19:57:36.000000000 -0700
 @@ -186,6 +186,13 @@
                spin_unlock(&dcache_lock);
                return 0;
@@ -53,10 +53,10 @@ Index: linux-2.4.21-suse2/fs/dcache.c
  }
  
  #define do_switch(x,y) do { \
-Index: linux-2.4.21-suse2/fs/exec.c
+Index: linux-2.4.21-x86_64/fs/exec.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/exec.c  2003-10-28 21:34:17.000000000 +0300
-+++ linux-2.4.21-suse2/fs/exec.c       2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/fs/exec.c 2003-10-28 10:34:17.000000000 -0800
++++ linux-2.4.21-x86_64/fs/exec.c      2004-04-12 19:57:36.000000000 -0700
 @@ -112,8 +112,10 @@
        struct file * file;
        struct nameidata nd;
@@ -118,10 +118,10 @@ Index: linux-2.4.21-suse2/fs/exec.c
                goto close_fail;
  
        retval = binfmt->core_dump(signr, regs, file);
-Index: linux-2.4.21-suse2/fs/namei.c
+Index: linux-2.4.21-x86_64/fs/namei.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/namei.c 2004-01-10 12:06:40.000000000 +0300
-+++ linux-2.4.21-suse2/fs/namei.c      2004-01-10 12:55:09.000000000 +0300
+--- linux-2.4.21-x86_64.orig/fs/namei.c        2003-10-28 10:34:18.000000000 -0800
++++ linux-2.4.21-x86_64/fs/namei.c     2004-04-12 19:58:44.000000000 -0700
 @@ -94,6 +94,13 @@
   * XEmacs seems to be relying on it...
   */
@@ -300,7 +300,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                                break;
                }
                goto return_base;
-@@ -643,6 +680,25 @@
+@@ -643,6 +680,27 @@
                 * Check the cached dentry for staleness.
                 */
                dentry = nd->dentry;
@@ -322,11 +322,13 @@ Index: linux-2.4.21-suse2/fs/namei.c
 +                              }
 +                              nd->dentry = new;
 +                      }
++                      if (!nd->dentry->d_inode)
++                              goto no_inode;
 +              } else
                if (dentry && dentry->d_op && dentry->d_op->d_revalidate) {
                        err = -ESTALE;
                        if (!dentry->d_op->d_revalidate(dentry, lookup_flags & LOOKUP_PARENT)) {
-@@ -656,6 +712,8 @@
+@@ -656,6 +714,8 @@
                dput(dentry);
                break;
        }
@@ -335,7 +337,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        path_release(nd);
  return_err:
        return err;
-@@ -663,13 +721,13 @@
+@@ -663,13 +723,13 @@
  
  int link_path_walk(const char * name, struct nameidata *nd)
  {
@@ -351,7 +353,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  }
  
  int path_walk(const char * name, struct nameidata *nd)
-@@ -677,6 +735,12 @@
+@@ -677,6 +737,12 @@
        return __path_walk(name, nd);
  }
  
@@ -364,7 +366,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  /* SMP-safe */
  /* returns 1 if everything is done */
  static int __emul_lookup_dentry(const char *name, struct nameidata *nd)
-@@ -759,6 +823,17 @@
+@@ -759,6 +825,17 @@
  }
  
  /* SMP-safe */
@@ -382,7 +384,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  int path_lookup(const char *path, unsigned flags, struct nameidata *nd)
  {
        int error = 0;
-@@ -773,6 +848,7 @@
+@@ -773,6 +850,7 @@
  {
        nd->last_type = LAST_ROOT; /* if there are only slashes... */
        nd->flags = flags;
@@ -390,7 +392,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        if (*name=='/')
                return walk_init_root(name,nd);
        read_lock(&current->fs->lock);
-@@ -787,7 +863,8 @@
+@@ -787,7 +865,8 @@
   * needs parent already locked. Doesn't follow mounts.
   * SMP-safe.
   */
@@ -400,7 +402,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  {
        struct dentry * dentry;
        struct inode *inode;
-@@ -810,13 +887,16 @@
+@@ -810,13 +889,16 @@
                        goto out;
        }
  
@@ -418,7 +420,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                dentry = inode->i_op->lookup(inode, new);
                unlock_kernel();
                if (!dentry)
-@@ -828,6 +908,12 @@
+@@ -828,6 +910,12 @@
        return dentry;
  }
  
@@ -431,7 +433,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  /* SMP-safe */
  struct dentry * lookup_one_len(const char * name, struct dentry * base, int len)
  {
-@@ -849,7 +935,7 @@
+@@ -849,7 +937,7 @@
        }
        this.hash = end_name_hash(hash);
  
@@ -440,7 +442,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  access:
        return ERR_PTR(-EACCES);
  }
-@@ -880,6 +966,23 @@
+@@ -880,6 +968,23 @@
        return err;
  }
  
@@ -464,7 +466,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  /*
   * It's inline, so penalty for filesystems that don't use sticky bit is
   * minimal.
-@@ -977,7 +1080,8 @@
+@@ -977,7 +1082,8 @@
        return retval;
  }
  
@@ -474,7 +476,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  {
        int error;
  
-@@ -990,12 +1094,15 @@
+@@ -990,12 +1096,15 @@
                goto exit_lock;
  
        error = -EACCES;        /* shouldn't it be ENOSYS? */
@@ -492,7 +494,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        unlock_kernel();
  exit_lock:
        up(&dir->i_zombie);
-@@ -1004,6 +1111,11 @@
+@@ -1004,6 +1113,11 @@
        return error;
  }
  
@@ -504,7 +506,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  /*
   *    open_namei()
   *
-@@ -1018,7 +1130,8 @@
+@@ -1018,7 +1132,8 @@
   * for symlinks (where the permissions are checked later).
   * SMP-safe
   */
@@ -514,7 +516,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  {
        int acc_mode, error = 0;
        struct inode *inode;
-@@ -1028,11 +1141,14 @@
+@@ -1028,11 +1143,14 @@
  
        acc_mode = ACC_MODE(flag);
  
@@ -530,7 +532,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                if (error)
                        return error;
                dentry = nd->dentry;
-@@ -1042,6 +1158,10 @@
+@@ -1042,6 +1160,10 @@
        /*
         * Create - we need to know the parent.
         */
@@ -541,7 +543,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        error = path_lookup(pathname, LOOKUP_PARENT, nd);
        if (error)
                return error;
-@@ -1057,7 +1177,7 @@
+@@ -1057,7 +1179,7 @@
  
        dir = nd->dentry;
        down(&dir->d_inode->i_sem);
@@ -550,7 +552,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  
  do_last:
        error = PTR_ERR(dentry);
-@@ -1066,11 +1186,12 @@
+@@ -1066,11 +1188,12 @@
                goto exit;
        }
  
@@ -564,7 +566,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                up(&dir->d_inode->i_sem);
  #ifndef DENTRY_WASTE_RAM
                if (error)
-@@ -1178,7 +1299,7 @@
+@@ -1178,7 +1301,7 @@
                if (!error) {
                        DQUOT_INIT(inode);
                        
@@ -573,7 +575,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                }
                put_write_access(inode);
                if (error)
-@@ -1190,8 +1311,10 @@
+@@ -1190,8 +1313,10 @@
        return 0;
  
  exit_dput:
@@ -584,7 +586,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        path_release(nd);
        return error;
  
-@@ -1210,7 +1333,10 @@
+@@ -1210,7 +1335,10 @@
         * are done. Procfs-like symlinks just set LAST_BIND.
         */
        UPDATE_ATIME(dentry->d_inode);
@@ -595,7 +597,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        dput(dentry);
        if (error)
                return error;
-@@ -1232,13 +1358,20 @@
+@@ -1232,13 +1360,20 @@
        }
        dir = nd->dentry;
        down(&dir->d_inode->i_sem);
@@ -618,7 +620,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  {
        struct dentry *dentry;
  
-@@ -1246,7 +1379,7 @@
+@@ -1246,7 +1381,7 @@
        dentry = ERR_PTR(-EEXIST);
        if (nd->last_type != LAST_NORM)
                goto fail;
@@ -627,12 +629,16 @@ Index: linux-2.4.21-suse2/fs/namei.c
        if (IS_ERR(dentry))
                goto fail;
        if (!is_dir && nd->last.name[nd->last.len] && !dentry->d_inode)
-@@ -1302,7 +1435,16 @@
+@@ -1302,7 +1437,20 @@
        error = path_lookup(tmp, LOOKUP_PARENT, &nd);
        if (error)
                goto out;
 -      dentry = lookup_create(&nd, 0);
 +
++      if (nd.last_type != LAST_NORM) {
++              error = -EEXIST;
++              goto out2;
++      }
 +      if (nd.dentry->d_inode->i_op->mknod_raw) {
 +              struct inode_operations *op = nd.dentry->d_inode->i_op;
 +              error = op->mknod_raw(&nd, mode, dev);
@@ -645,7 +651,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        error = PTR_ERR(dentry);
  
        if (!IS_POSIXACL(nd.dentry->d_inode))
-@@ -1324,6 +1466,7 @@
+@@ -1324,6 +1472,7 @@
                dput(dentry);
        }
        up(&nd.dentry->d_inode->i_sem);
@@ -653,11 +659,15 @@ Index: linux-2.4.21-suse2/fs/namei.c
        path_release(&nd);
  out:
        putname(tmp);
-@@ -1371,7 +1514,14 @@
+@@ -1371,7 +1520,18 @@
                error = path_lookup(tmp, LOOKUP_PARENT, &nd);
                if (error)
                        goto out;
 -              dentry = lookup_create(&nd, 1);
++              if (nd.last_type != LAST_NORM) {
++                      error = -EEXIST;
++                      goto out2;
++              }
 +              if (nd.dentry->d_inode->i_op->mkdir_raw) {
 +                      struct inode_operations *op = nd.dentry->d_inode->i_op;
 +                      error = op->mkdir_raw(&nd, mode);
@@ -669,7 +679,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                error = PTR_ERR(dentry);
                if (!IS_ERR(dentry)) {
                        if (!IS_POSIXACL(nd.dentry->d_inode))
-@@ -1380,6 +1530,7 @@
+@@ -1380,6 +1540,7 @@
                        dput(dentry);
                }
                up(&nd.dentry->d_inode->i_sem);
@@ -677,7 +687,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                path_release(&nd);
  out:
                putname(tmp);
-@@ -1480,8 +1631,16 @@
+@@ -1480,8 +1641,16 @@
                        error = -EBUSY;
                        goto exit1;
        }
@@ -695,7 +705,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        error = PTR_ERR(dentry);
        if (!IS_ERR(dentry)) {
                error = vfs_rmdir(nd.dentry->d_inode, dentry);
-@@ -1539,8 +1698,15 @@
+@@ -1539,8 +1708,15 @@
        error = -EISDIR;
        if (nd.last_type != LAST_NORM)
                goto exit1;
@@ -712,11 +722,15 @@ Index: linux-2.4.21-suse2/fs/namei.c
        error = PTR_ERR(dentry);
        if (!IS_ERR(dentry)) {
                /* Why not before? Because we want correct error value */
-@@ -1607,15 +1773,23 @@
+@@ -1607,15 +1783,27 @@
                error = path_lookup(to, LOOKUP_PARENT, &nd);
                if (error)
                        goto out;
 -              dentry = lookup_create(&nd, 0);
++              if (nd.last_type != LAST_NORM) {
++                      error = -EEXIST;
++                      goto out2;
++              }
 +              if (nd.dentry->d_inode->i_op->symlink_raw) {
 +                      struct inode_operations *op = nd.dentry->d_inode->i_op;
 +                      error = op->symlink_raw(&nd, from);
@@ -738,11 +752,15 @@ Index: linux-2.4.21-suse2/fs/namei.c
                putname(to);
        }
        putname(from);
-@@ -1691,7 +1865,14 @@
+@@ -1691,7 +1879,18 @@
                error = -EXDEV;
                if (old_nd.mnt != nd.mnt)
                        goto out_release;
 -              new_dentry = lookup_create(&nd, 0);
++              if (nd.last_type != LAST_NORM) {
++                      error = -EEXIST;
++                      goto out_release;
++              }
 +              if (nd.dentry->d_inode->i_op->link_raw) {
 +                      struct inode_operations *op = nd.dentry->d_inode->i_op;
 +                      error = op->link_raw(&old_nd, &nd);
@@ -754,7 +772,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
                error = PTR_ERR(new_dentry);
                if (!IS_ERR(new_dentry)) {
                        error = vfs_link(old_nd.dentry, nd.dentry->d_inode, new_dentry);
-@@ -1735,7 +1916,7 @@
+@@ -1735,7 +1934,7 @@
   *       locking].
   */
  int vfs_rename_dir(struct inode *old_dir, struct dentry *old_dentry,
@@ -763,7 +781,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  {
        int error;
        struct inode *target;
-@@ -1814,7 +1995,7 @@
+@@ -1814,7 +2013,7 @@
  }
  
  int vfs_rename_other(struct inode *old_dir, struct dentry *old_dentry,
@@ -772,7 +790,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  {
        int error;
  
-@@ -1902,9 +2083,18 @@
+@@ -1902,9 +2101,18 @@
        if (newnd.last_type != LAST_NORM)
                goto exit2;
  
@@ -792,7 +810,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        error = PTR_ERR(old_dentry);
        if (IS_ERR(old_dentry))
                goto exit3;
-@@ -1920,16 +2110,16 @@
+@@ -1920,16 +2128,16 @@
                if (newnd.last.name[newnd.last.len])
                        goto exit4;
        }
@@ -811,7 +829,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
        dput(new_dentry);
  exit4:
        dput(old_dentry);
-@@ -1980,20 +2170,26 @@
+@@ -1980,20 +2188,26 @@
  }
  
  static inline int
@@ -840,7 +858,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  out:
        if (current->link_count || res || nd->last_type!=LAST_NORM)
                return res;
-@@ -2017,7 +2213,13 @@
+@@ -2017,7 +2231,13 @@
  
  int vfs_follow_link(struct nameidata *nd, const char *link)
  {
@@ -855,7 +873,7 @@ Index: linux-2.4.21-suse2/fs/namei.c
  }
  
  /* get the link contents into pagecache */
-@@ -2059,7 +2261,7 @@
+@@ -2059,7 +2279,7 @@
  {
        struct page *page = NULL;
        char *s = page_getlink(dentry, &page);
@@ -864,10 +882,10 @@ Index: linux-2.4.21-suse2/fs/namei.c
        if (page) {
                kunmap(page);
                page_cache_release(page);
-Index: linux-2.4.21-suse2/fs/namespace.c
+Index: linux-2.4.21-x86_64/fs/namespace.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/namespace.c     2003-10-28 21:34:12.000000000 +0300
-+++ linux-2.4.21-suse2/fs/namespace.c  2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/fs/namespace.c    2003-10-28 10:34:12.000000000 -0800
++++ linux-2.4.21-x86_64/fs/namespace.c 2004-04-12 19:57:36.000000000 -0700
 @@ -98,6 +98,7 @@
  {
        old_nd->dentry = mnt->mnt_mountpoint;
@@ -981,10 +999,10 @@ Index: linux-2.4.21-suse2/fs/namespace.c
        path_release(&new_nd);
  out0:
        unlock_kernel();
-Index: linux-2.4.21-suse2/fs/open.c
+Index: linux-2.4.21-x86_64/fs/open.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/open.c  2003-10-28 21:33:59.000000000 +0300
-+++ linux-2.4.21-suse2/fs/open.c       2004-01-10 12:55:39.000000000 +0300
+--- linux-2.4.21-x86_64.orig/fs/open.c 2003-10-28 10:33:59.000000000 -0800
++++ linux-2.4.21-x86_64/fs/open.c      2004-04-12 19:57:36.000000000 -0700
 @@ -19,6 +19,8 @@
  #include <asm/uaccess.h>
  
@@ -1385,11 +1403,11 @@ Index: linux-2.4.21-suse2/fs/open.c
  /*
   * Find an empty file descriptor entry, and mark it busy.
   */
-Index: linux-2.4.21-suse2/fs/stat.c
+Index: linux-2.4.21-x86_64/fs/stat.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/stat.c  2003-10-28 21:33:58.000000000 +0300
-+++ linux-2.4.21-suse2/fs/stat.c       2004-01-10 12:15:41.000000000 +0300
-@@ -17,10 +17,14 @@
+--- linux-2.4.21-x86_64.orig/fs/stat.c 2003-10-28 10:33:58.000000000 -0800
++++ linux-2.4.21-x86_64/fs/stat.c      2004-04-12 19:58:44.000000000 -0700
+@@ -17,10 +17,12 @@
   * Revalidate the inode. This is required for proper NFS attribute caching.
   */
  static __inline__ int
@@ -1398,15 +1416,13 @@ Index: linux-2.4.21-suse2/fs/stat.c
  {
        struct inode * inode = dentry->d_inode;
 -      if (inode->i_op && inode->i_op->revalidate)
-+      if (!inode)
-+              return -ENOENT;
 +      if (inode->i_op && inode->i_op->revalidate_it)
 +              return inode->i_op->revalidate_it(dentry, it);
 +      else if (inode->i_op && inode->i_op->revalidate)
                return inode->i_op->revalidate(dentry);
        return 0;
  }
-@@ -141,13 +145,15 @@
+@@ -141,13 +143,15 @@
  asmlinkage long sys_stat(char * filename, struct __old_kernel_stat * statbuf)
  {
        struct nameidata nd;
@@ -1424,7 +1440,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                path_release(&nd);
        }
        return error;
-@@ -157,13 +163,15 @@
+@@ -157,13 +161,15 @@
  asmlinkage long sys_newstat(char * filename, struct stat * statbuf)
  {
        struct nameidata nd;
@@ -1442,7 +1458,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                path_release(&nd);
        }
        return error;
-@@ -178,13 +186,15 @@
+@@ -178,13 +184,15 @@
  asmlinkage long sys_lstat(char * filename, struct __old_kernel_stat * statbuf)
  {
        struct nameidata nd;
@@ -1460,7 +1476,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                path_release(&nd);
        }
        return error;
-@@ -195,13 +205,15 @@
+@@ -195,13 +203,15 @@
  asmlinkage long sys_newlstat(char * filename, struct stat * statbuf)
  {
        struct nameidata nd;
@@ -1478,7 +1494,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                path_release(&nd);
        }
        return error;
-@@ -222,7 +234,7 @@
+@@ -222,7 +232,7 @@
        if (f) {
                struct dentry * dentry = f->f_dentry;
  
@@ -1487,7 +1503,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                if (!err)
                        err = cp_old_stat(dentry->d_inode, statbuf);
                fput(f);
-@@ -241,7 +253,7 @@
+@@ -241,7 +251,7 @@
        if (f) {
                struct dentry * dentry = f->f_dentry;
  
@@ -1496,7 +1512,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                if (!err)
                        err = cp_new_stat(dentry->d_inode, statbuf);
                fput(f);
-@@ -263,7 +275,7 @@
+@@ -263,7 +273,7 @@
  
                error = -EINVAL;
                if (inode->i_op && inode->i_op->readlink &&
@@ -1505,7 +1521,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                        UPDATE_ATIME(inode);
                        error = inode->i_op->readlink(nd.dentry, buf, bufsiz);
                }
-@@ -339,12 +351,14 @@
+@@ -339,12 +349,14 @@
  {
        struct nameidata nd;
        int error;
@@ -1522,7 +1538,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                path_release(&nd);
        }
        return error;
-@@ -354,12 +368,14 @@
+@@ -354,12 +366,14 @@
  {
        struct nameidata nd;
        int error;
@@ -1539,7 +1555,7 @@ Index: linux-2.4.21-suse2/fs/stat.c
                path_release(&nd);
        }
        return error;
-@@ -374,7 +390,7 @@
+@@ -374,7 +388,7 @@
        if (f) {
                struct dentry * dentry = f->f_dentry;
  
@@ -1548,10 +1564,10 @@ Index: linux-2.4.21-suse2/fs/stat.c
                if (!err)
                        err = cp_new_stat64(dentry->d_inode, statbuf);
                fput(f);
-Index: linux-2.4.21-suse2/include/linux/dcache.h
+Index: linux-2.4.21-x86_64/include/linux/dcache.h
 ===================================================================
---- linux-2.4.21-suse2.orig/include/linux/dcache.h     2003-11-11 03:44:28.000000000 +0300
-+++ linux-2.4.21-suse2/include/linux/dcache.h  2004-01-10 12:48:36.000000000 +0300
+--- linux-2.4.21-x86_64.orig/include/linux/dcache.h    2003-11-10 16:44:28.000000000 -0800
++++ linux-2.4.21-x86_64/include/linux/dcache.h 2004-04-12 19:57:36.000000000 -0700
 @@ -7,6 +7,51 @@
  #include <linux/gdb.h>
  #include <linux/mount.h>
@@ -1635,10 +1651,10 @@ Index: linux-2.4.21-suse2/include/linux/dcache.h
  
  extern spinlock_t dcache_lock;
  
-Index: linux-2.4.21-suse2/include/linux/fs.h
+Index: linux-2.4.21-x86_64/include/linux/fs.h
 ===================================================================
---- linux-2.4.21-suse2.orig/include/linux/fs.h 2004-01-10 11:28:05.000000000 +0300
-+++ linux-2.4.21-suse2/include/linux/fs.h      2004-01-10 12:48:36.000000000 +0300
+--- linux-2.4.21-x86_64.orig/include/linux/fs.h        2004-04-12 19:57:33.000000000 -0700
++++ linux-2.4.21-x86_64/include/linux/fs.h     2004-04-12 19:57:36.000000000 -0700
 @@ -74,6 +74,7 @@
  
  #define FMODE_READ 1
@@ -1766,10 +1782,10 @@ Index: linux-2.4.21-suse2/include/linux/fs.h
  extern int page_readlink(struct dentry *, char *, int);
  extern int page_follow_link(struct dentry *, struct nameidata *);
  extern struct inode_operations page_symlink_inode_operations;
-Index: linux-2.4.21-suse2/include/linux/fs_struct.h
+Index: linux-2.4.21-x86_64/include/linux/fs_struct.h
 ===================================================================
---- linux-2.4.21-suse2.orig/include/linux/fs_struct.h  2001-07-14 02:10:44.000000000 +0400
-+++ linux-2.4.21-suse2/include/linux/fs_struct.h       2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/include/linux/fs_struct.h 2001-07-13 15:10:44.000000000 -0700
++++ linux-2.4.21-x86_64/include/linux/fs_struct.h      2004-04-12 19:57:36.000000000 -0700
 @@ -34,10 +34,12 @@
        write_lock(&fs->lock);
        old_root = fs->root;
@@ -1796,10 +1812,10 @@ Index: linux-2.4.21-suse2/include/linux/fs_struct.h
                dput(old_pwd);
                mntput(old_pwdmnt);
        }
-Index: linux-2.4.21-suse2/kernel/exit.c
+Index: linux-2.4.21-x86_64/kernel/exit.c
 ===================================================================
---- linux-2.4.21-suse2.orig/kernel/exit.c      2003-10-28 21:34:13.000000000 +0300
-+++ linux-2.4.21-suse2/kernel/exit.c   2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/kernel/exit.c     2003-10-28 10:34:13.000000000 -0800
++++ linux-2.4.21-x86_64/kernel/exit.c  2004-04-12 19:57:36.000000000 -0700
 @@ -288,11 +288,14 @@
  {
        /* No need to hold fs->lock if we are killing it */
@@ -1815,10 +1831,10 @@ Index: linux-2.4.21-suse2/kernel/exit.c
                        dput(fs->altroot);
                        mntput(fs->altrootmnt);
                }
-Index: linux-2.4.21-suse2/kernel/fork.c
+Index: linux-2.4.21-x86_64/kernel/fork.c
 ===================================================================
---- linux-2.4.21-suse2.orig/kernel/fork.c      2003-10-28 21:34:17.000000000 +0300
-+++ linux-2.4.21-suse2/kernel/fork.c   2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/kernel/fork.c     2003-10-28 10:34:17.000000000 -0800
++++ linux-2.4.21-x86_64/kernel/fork.c  2004-04-12 19:57:36.000000000 -0700
 @@ -461,10 +461,13 @@
                fs->umask = old->umask;
                read_lock(&old->lock);
@@ -1833,10 +1849,10 @@ Index: linux-2.4.21-suse2/kernel/fork.c
                        fs->altrootmnt = mntget(old->altrootmnt);
                        fs->altroot = dget(old->altroot);
                } else {
-Index: linux-2.4.21-suse2/kernel/ksyms.c
+Index: linux-2.4.21-x86_64/kernel/ksyms.c
 ===================================================================
---- linux-2.4.21-suse2.orig/kernel/ksyms.c     2004-01-10 11:28:05.000000000 +0300
-+++ linux-2.4.21-suse2/kernel/ksyms.c  2004-01-10 12:15:41.000000000 +0300
+--- linux-2.4.21-x86_64.orig/kernel/ksyms.c    2004-04-12 19:57:33.000000000 -0700
++++ linux-2.4.21-x86_64/kernel/ksyms.c 2004-04-12 19:57:36.000000000 -0700
 @@ -327,6 +327,7 @@
  EXPORT_SYMBOL(set_page_dirty);
  EXPORT_SYMBOL(vfs_readlink);
index 99ea296..15af341 100644 (file)
@@ -9,6 +9,5 @@ export-truncate-2.6-suse.patch
 export_symbols-2.6-suse.patch 
 removepage-2.6-suse.patch
 dev_read_only-2.6-suse.patch 
-kernel_text_address-2.6-suse.patch 
 export-2.6-suse.patch
 header-guards-2.6-suse.patch
index 65e8dcd..cff99dd 100644 (file)
@@ -1,4 +1,3 @@
-header-guards-2.6-suse.patch
 ext3-wantedi-2.6-suse.patch
 ext3-san-jdike-2.6-suse.patch
 iopen-2.6-suse.patch 
@@ -8,4 +7,3 @@ ext3-init-generation-2.6-suse.patch
 ext3-ea-in-inode-2.6-suse.patch
 export-ext3-2.6-suse.patch
 ext3-include-fixes-2.6-suse.patch
-ext3-xattr-header-move-2.6.suse.patch
diff --git a/lustre/kernel_patches/targets/suse-2.4.21-2.target b/lustre/kernel_patches/targets/suse-2.4.21-2.target
new file mode 100644 (file)
index 0000000..c27c3de
--- /dev/null
@@ -0,0 +1,14 @@
+KERNEL=linux-2.4.21-x86_64.tar.gz
+SERIES=suse-2.4.21-2
+VERSION=2.4.21
+EXTRA_VERSION=lustre.1.2.1
+RHBUILD=0
+
+BASE_ARCHS="x86_64"
+BIGMEM_ARCHS=""
+BOOT_ARCH=""
+JENSEN_ARCHS=""
+SMP_ARCHS=""
+UP_ARCHS="x86_64"
+
+ARCH="x86_64"
index 3e0d4d6..9ad7f07 100644 (file)
@@ -16,3 +16,4 @@ linux-stage
 linux
 *.c
 *.h
+sources
index 8fe1606..7d1e229 100644 (file)
@@ -14,4 +14,6 @@ ldiskfs_sources := $(notdir $(ext3_sources) $(ext3_headers)) $(new_sources)
 
 ldiskfs-objs := $(filter %.o,$(ldiskfs_sources:.c=.o))
 
+EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs
+
 @INCLUDE_RULES@
index dabfcbc..b24081e 100644 (file)
@@ -1,5 +1,6 @@
+if LDISKFS
 modulefs_DATA = ldiskfs$(KMODEXT)
-$(modulefs_DATA): sources
+endif
 
 ldiskfs_linux_headers := $(addprefix linux/,$(subst ext3,ldiskfs,$(notdir $(linux_headers))))
 
@@ -56,9 +57,8 @@ foo-check:
        @echo "ldiskfs_OBJECTS: $(ldiskfs_OBJECTS)"
        @echo "ldiskfs_LDADD: $(ldiskfs_LDADD)"
 
-
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
-CLEANFILES = $(ldiskfs_sources) sources ldiskfs-dummy.c ldiskfs.mod.c
+CLEANFILES = sources *.c *.h
 
 clean: clean-am
        rm -rf linux linux-stage
index a018807..251816f 100644 (file)
@@ -307,7 +307,7 @@ int ldlm_del_waiting_lock(struct ldlm_lock *lock)
 
 #endif /* __KERNEL__ */
 
-static void ldlm_failed_ast(struct ldlm_lock *lock, int rc, char *ast_type)
+static void ldlm_failed_ast(struct ldlm_lock *lock, int rc,const char *ast_type)
 {
         const struct ptlrpc_connection *conn = lock->l_export->exp_connection;
         char str[PTL_NALFMT_SIZE];
@@ -325,6 +325,42 @@ static void ldlm_failed_ast(struct ldlm_lock *lock, int rc, char *ast_type)
         ptlrpc_fail_export(lock->l_export);
 }
 
+static int ldlm_handle_ast_error(struct ldlm_lock *lock,
+                                 struct ptlrpc_request *req, int rc,
+                                 const char *ast_type)
+{
+        if (rc == -ETIMEDOUT || rc == -EINTR || rc == -ENOTCONN) {
+                LASSERT(lock->l_export);
+                if (lock->l_export->exp_libclient) {
+                        LDLM_DEBUG(lock, "%s AST to liblustre client (nid "
+                                   LPU64") timeout, just cancelling lock",
+                                   ast_type, req->rq_peer.peer_nid);
+                        ldlm_lock_cancel(lock);
+                        rc = -ERESTART;
+                } else {
+                        ldlm_del_waiting_lock(lock);
+                        ldlm_failed_ast(lock, rc, ast_type);
+                }
+        } else if (rc) {
+                if (rc == -EINVAL)
+                        LDLM_DEBUG(lock, "client (nid "LPU64") returned %d"
+                                   " from %s AST - normal race",
+                                   req->rq_peer.peer_nid,
+                                   req->rq_repmsg->status, ast_type);
+                else
+                        LDLM_ERROR(lock, "client (nid "LPU64") returned %d "
+                                   "from %s AST", req->rq_peer.peer_nid,
+                                   (req->rq_repmsg != NULL) ?
+                                   req->rq_repmsg->status : 0, ast_type);
+                ldlm_lock_cancel(lock);
+                /* Server-side AST functions are called from ldlm_reprocess_all,
+                 * which needs to be told to please restart its reprocessing. */
+                rc = -ERESTART;
+        }
+
+        return rc;
+}
+
 int ldlm_server_blocking_ast(struct ldlm_lock *lock,
                              struct ldlm_lock_desc *desc,
                              void *data, int flag)
@@ -386,44 +422,8 @@ int ldlm_server_blocking_ast(struct ldlm_lock *lock,
         req->rq_send_state = LUSTRE_IMP_FULL;
         req->rq_timeout = 2; /* 2 second timeout for initial AST reply */
         rc = ptlrpc_queue_wait(req);
-        if (rc == -ETIMEDOUT || rc == -EINTR || rc == -ENOTCONN) {
-                LASSERT(lock->l_export);
-                if (lock->l_export->exp_libclient) {
-                        CDEBUG(D_HA, "BLOCKING AST to liblustre client (nid "
-                               LPU64") timeout, simply cancel lock 0x%p\n",
-                               req->rq_peer.peer_nid, lock);
-                        ldlm_lock_cancel(lock);
-                        rc = -ERESTART;
-                } else {
-                        ldlm_del_waiting_lock(lock);
-                        ldlm_failed_ast(lock, rc, "blocking");
-                }
-        } else if (rc) {
-                if (rc == -EINVAL)
-                        CDEBUG(D_DLMTRACE, "client (nid "LPU64") returned %d "
-                               "from blocking AST for lock %p--normal race\n",
-                               req->rq_peer.peer_nid,
-                               req->rq_repmsg->status, lock);
-                else if (rc == -ENOTCONN)
-                        CDEBUG(D_DLMTRACE, "client (nid "LPU64") returned %d "
-                               "from blocking AST for lock %p--this client was "
-                               "probably rebooted while it held a lock, nothing"
-                               " serious\n",req->rq_peer.peer_nid,
-                               req->rq_repmsg->status, lock);
-                else
-                        CDEBUG(D_ERROR, "client (nid "LPU64") returned %d "
-                               "from blocking AST for lock %p\n",
-                               req->rq_peer.peer_nid,
-                               (req->rq_repmsg != NULL)?
-                               req->rq_repmsg->status : 0,
-                               lock);
-                LDLM_DEBUG(lock, "client sent rc %d rq_status %d from blocking "
-                           "AST", rc, req->rq_status);
-                ldlm_lock_cancel(lock);
-                /* Server-side AST functions are called from ldlm_reprocess_all,
-                 * which needs to be told to please restart its reprocessing. */
-                rc = -ERESTART;
-        }
+        if (rc != 0)
+                rc = ldlm_handle_ast_error(lock, req, rc, "blocking");
 
         ptlrpc_req_finished(req);
 
@@ -493,21 +493,9 @@ int ldlm_server_completion_ast(struct ldlm_lock *lock, int flags, void *data)
         l_unlock(&lock->l_resource->lr_namespace->ns_lock);
 
         rc = ptlrpc_queue_wait(req);
-        if ((rc == -ETIMEDOUT || rc == -EINTR || rc == -ENOTCONN) &&
-             !lock->l_export->exp_libclient) {
-                ldlm_del_waiting_lock(lock);
-                ldlm_failed_ast(lock, rc, "completion");
-        } else if (rc == -EINVAL) {
-                LDLM_DEBUG(lock, "lost the race -- client no longer has this "
-                           "lock");
-        } else if (rc) {
-                LDLM_ERROR(lock, "client sent rc %d rq_status %d from "
-                           "completion AST", rc, req->rq_status);
-                ldlm_lock_cancel(lock);
-                /* Server-side AST functions are called from ldlm_reprocess_all,
-                 * which needs to be told to please restart its reprocessing. */
-                rc = -ERESTART;
-        }
+        if (rc != 0)
+                rc = ldlm_handle_ast_error(lock, req, rc, "completion");
+
         ptlrpc_req_finished(req);
 
         RETURN(rc);
@@ -540,23 +528,13 @@ int ldlm_server_glimpse_ast(struct ldlm_lock *lock, void *data)
         req->rq_timeout = 2; /* 2 second timeout for initial AST reply */
 
         rc = ptlrpc_queue_wait(req);
-        if ((rc == -ETIMEDOUT || rc == -EINTR || rc == -ENOTCONN) &&
-            !lock->l_export->exp_libclient) {
-                ldlm_del_waiting_lock(lock);
-                ldlm_failed_ast(lock, rc, "glimpse");
-        } else if (rc == -EINVAL) {
-                LDLM_DEBUG(lock, "lost the race -- client no longer has this "
-                           "lock");
-        } else if (rc == -ELDLM_NO_LOCK_DATA) {
-                LDLM_DEBUG(lock, "lost a race -- client has a lock, but no "
-                           "inode");
-        } else if (rc) {
-                LDLM_ERROR(lock, "client sent rc %d rq_status %d from "
-                           "glimpse AST", rc, req->rq_status);
-        } else {
+        if (rc == -ELDLM_NO_LOCK_DATA)
+                LDLM_DEBUG(lock, "lost race - client has a lock but no inode");
+        else if (rc != 0)
+                rc = ldlm_handle_ast_error(lock, req, rc, "glimpse");
+        else
                 rc = res->lr_namespace->ns_lvbo->lvbo_update
                         (res, req->rq_repmsg, 0, 1);
-        }
         ptlrpc_req_finished(req);
         RETURN(rc);
 }
index 907eb5b..b831bd8 100644 (file)
@@ -24,8 +24,10 @@ SYSIO_LIBS =  $(SYSIO)/drivers/native/libsysio_native.a \
               $(SYSIO)/src/libsysio.a \
               $(SYSIO)/dev/stdfd/libsysio_stdfd.a
 
+if LIBLUSTRE
 lib_LIBRARIES = liblustre.a
 noinst_LIBRARIES = libllite.a
+endif
 
 libllite_a_SOURCES = llite_lib.c super.c namei.c rw.c file.c dir.c llite_lib.h
 
index a2966a2..05fc153 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- * Lustre Light Super operations
+ * Lustre Light directory handling
  *
  *  Copyright (c) 2002, 2003 Cluster File Systems, Inc.
  *
index 9b645d0..4d157c2 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- * Lustre Light Super operations
+ * Lustre Light file operations
  *
  *  Copyright (c) 2002, 2003 Cluster File Systems, Inc.
  *
index f9fa768..31aef17 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- * Lustre Light Super operations
+ * Lustre Light common routines
  *
  *  Copyright (c) 2002, 2003 Cluster File Systems, Inc.
  *
index 3339595..0403ad5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- * Lustre Light Super operations
+ * Lustre Light name resolution
  *
  *  Copyright (c) 2002, 2003 Cluster File Systems, Inc.
  *
index 8ae6e45..47ac443 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- * Lustre Light Super operations
+ * Lustre Light block IO
  *
  *  Copyright (c) 2002, 2003 Cluster File Systems, Inc.
  *
index a53de13..81e7058 100644 (file)
@@ -6,9 +6,8 @@ LIBS = $(LIBEFENCE) $(LIBREADLINE)
 
 LLIB_EXEC= ../liblustre.a -lpthread
 
+if LIBLUSTRE
 noinst_LIBRARIES = libtestcommon.a
-libtestcommon_a_SOURCES = test_common.c test_common.h
-
 def_tests = echo_test sanity recovery_small replay_single replay_ost_single
 
 if MPITESTS
@@ -16,6 +15,9 @@ bin_PROGRAMS = $(def_tests) test_lock_cancel
 else
 bin_PROGRAMS = $(def_tests)
 endif
+endif # LIBLUSTRE
+
+libtestcommon_a_SOURCES = test_common.c test_common.h
 
 echo_test_SOURCES = echo_test.c  ../../utils/parser.c ../../utils/obd.c ../../utils/lustre_cfg.c
 echo_test_CFLAGS = $(LL_CFLAGS)
index 0ea9ad6..9fdde59 100644 (file)
@@ -3,8 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulefs_DATA = llite$(KMODEXT)
+endif
 
 DIST_SOURCES := $(llite-objs:.o=.c) llite_internal.h rw24.c super.c rw26.c super25.c
-
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
index bca0445..5307cb1 100644 (file)
@@ -90,7 +90,7 @@ static int ll_dir_readpage(struct file *file, struct page *page)
 }
 
 struct address_space_operations ll_dir_aops = {
-        readpage: ll_dir_readpage,
+        .readpage  = ll_dir_readpage,
 };
 
 /*
@@ -645,10 +645,10 @@ int ll_dir_release(struct inode *inode, struct file *file)
 }
 
 struct file_operations ll_dir_operations = {
-        open: ll_dir_open,
-        release: ll_dir_release,
-        read: generic_read_dir,
-        readdir: ll_readdir,
-        ioctl: ll_dir_ioctl
+        .open     = ll_dir_open,
+        .release  = ll_dir_release,
+        .read     = generic_read_dir,
+        .readdir  = ll_readdir,
+        .ioctl    = ll_dir_ioctl
 };
 
index 080483e..f9d58f7 100644 (file)
@@ -485,6 +485,7 @@ static int ll_extent_lock_callback(struct ldlm_lock *lock,
                 down(&inode->i_sem);
                 kms = ldlm_extent_shift_kms(lock,
                                             lsm->lsm_oinfo[stripe].loi_kms);
+               
                 if (lsm->lsm_oinfo[stripe].loi_kms != kms)
                         LDLM_DEBUG(lock, "updating kms from "LPU64" to "LPU64,
                                    lsm->lsm_oinfo[stripe].loi_kms, kms);
@@ -1422,25 +1423,28 @@ int ll_getattr(struct vfsmount *mnt, struct dentry *de,
 #endif
 
 struct file_operations ll_file_operations = {
-        read:           ll_file_read,
-        write:          ll_file_write,
-        ioctl:          ll_file_ioctl,
-        open:           ll_file_open,
-        release:        ll_file_release,
-        mmap:           generic_file_mmap,
-        llseek:         ll_file_seek,
-        fsync:          ll_fsync,
-        //lock:           ll_file_flock
+        .read           = ll_file_read,
+        .write          = ll_file_write,
+        .ioctl          = ll_file_ioctl,
+        .open           = ll_file_open,
+        .release        = ll_file_release,
+        .mmap           = generic_file_mmap,
+        .llseek         = ll_file_seek,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+        .sendfile       = generic_file_sendfile,
+#endif
+        .fsync          = ll_fsync,
+        //.lock           ll_file_flock
 };
 
 struct inode_operations ll_file_inode_operations = {
-        setattr_raw:    ll_setattr_raw,
-        setattr:        ll_setattr,
-        truncate:       ll_truncate,
+        .setattr_raw    = ll_setattr_raw,
+        .setattr        = ll_setattr,
+        .truncate       = ll_truncate,
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
-        getattr_it:     ll_getattr,
+        .getattr_it     = ll_getattr,
 #else
-        revalidate_it:  ll_inode_revalidate_it,
+        .revalidate_it  = ll_inode_revalidate_it,
 #endif
 };
 
index 00fa891..5ae049d 100644 (file)
@@ -192,9 +192,9 @@ int lustre_common_fill_super(struct super_block *sb, char *mdc, char *osc)
                 GOTO(out_root, err);
         }
 
-       /* making vm readahead 0 for 2.4.x. In the case of 2.6.x, 
-          backing dev info assigned to inode mapping is used for
-          determining maximal readahead. */
+        /* making vm readahead 0 for 2.4.x. In the case of 2.6.x,
+           backing dev info assigned to inode mapping is used for
+           determining maximal readahead. */
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
         /* bug 2805 - set VM readahead to zero */
         vm_max_readahead = vm_min_readahead = 0;
@@ -1104,10 +1104,10 @@ void ll_update_inode(struct inode *inode, struct mds_body *body,
                 set_bit(LLI_F_HAVE_MDS_SIZE_LOCK, &lli->lli_flags);
 }
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
 static struct backing_dev_info ll_backing_dev_info = {
-       .ra_pages       = 0,    /* No readahead */
-       .memory_backed  = 0,    /* Does contribute to dirty memory */
+        .ra_pages       = 0,    /* No readahead */
+        .memory_backed  = 0,    /* Does contribute to dirty memory */
 };
 #endif
 
@@ -1154,15 +1154,15 @@ void ll_read_inode2(struct inode *inode, void *opaque)
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
                 init_special_inode(inode, inode->i_mode,
                                    kdev_t_to_nr(inode->i_rdev));
-               
-               /* initializing backing dev info. */
-               inode->i_mapping->backing_dev_info = &ll_backing_dev_info;
+
+                /* initializing backing dev info. */
+                inode->i_mapping->backing_dev_info = &ll_backing_dev_info;
 #else
                 init_special_inode(inode, inode->i_mode, inode->i_rdev);
 #endif
                 lli->ll_save_ifop = inode->i_fop;
-                
-               if (S_ISCHR(inode->i_mode))
+
+                if (S_ISCHR(inode->i_mode))
                         inode->i_fop = &ll_special_chr_inode_fops;
                 else if (S_ISBLK(inode->i_mode))
                         inode->i_fop = &ll_special_blk_inode_fops;
@@ -1170,14 +1170,14 @@ void ll_read_inode2(struct inode *inode, void *opaque)
                         inode->i_fop = &ll_special_fifo_inode_fops;
                 else if (S_ISSOCK(inode->i_mode))
                         inode->i_fop = &ll_special_sock_inode_fops;
-        
-               CWARN("saved %p, replaced with %p\n", lli->ll_save_ifop,
+
+                CWARN("saved %p, replaced with %p\n", lli->ll_save_ifop,
                       inode->i_fop);
-                     
+
                 if (lli->ll_save_ifop->owner) {
                         CWARN("%p has owner %p\n", lli->ll_save_ifop,
                               lli->ll_save_ifop->owner);
-               }
+                }
                 EXIT;
         }
 }
index f3b7fc3..93638fd 100644 (file)
@@ -81,8 +81,8 @@ extern struct dentry_operations ll_d_ops;
 
 static struct dentry *ll_iget_for_nfs(struct super_block *sb, unsigned long ino,
                                       __u32 generation, umode_t mode)
-{                                      
-        struct inode *inode;      
+{
+        struct inode *inode;
         struct dentry *result;
         struct list_head *lp;
 
index 6c0f612..9ca3ec6 100644 (file)
@@ -792,23 +792,23 @@ static int ll_rename_raw(struct nameidata *oldnd, struct nameidata *newnd)
 }
 
 struct inode_operations ll_dir_inode_operations = {
-        link_raw:           ll_link_raw,
-        unlink_raw:         ll_unlink_raw,
-        symlink_raw:        ll_symlink_raw,
-        mkdir_raw:          ll_mkdir_raw,
-        rmdir_raw:          ll_rmdir_raw,
-        mknod_raw:          ll_mknod_raw,
-        mknod:              ll_mknod,
-        rename_raw:         ll_rename_raw,
-        setattr:            ll_setattr,
-        setattr_raw:        ll_setattr_raw,
+        .link_raw           = ll_link_raw,
+        .unlink_raw         = ll_unlink_raw,
+        .symlink_raw        = ll_symlink_raw,
+        .mkdir_raw          = ll_mkdir_raw,
+        .rmdir_raw          = ll_rmdir_raw,
+        .mknod_raw          = ll_mknod_raw,
+        .mknod              = ll_mknod,
+        .rename_raw         = ll_rename_raw,
+        .setattr            = ll_setattr,
+        .setattr_raw        = ll_setattr_raw,
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
-        create_it:          ll_create_it,
-        lookup_it:          ll_lookup_it,
-        revalidate_it:      ll_inode_revalidate_it,
+        .create_it          = ll_create_it,
+        .lookup_it          = ll_lookup_it,
+        .revalidate_it      = ll_inode_revalidate_it,
 #else
-        lookup:             ll_lookup_nd,
-        create:             ll_create_nd,
-        getattr_it:         ll_getattr,
+        .lookup             = ll_lookup_nd,
+        .create             = ll_create_nd,
+        .getattr_it         = ll_getattr,
 #endif
 };
index 71e194d..8a3099f 100644 (file)
@@ -177,12 +177,12 @@ static int ll_direct_IO_24(int rw,
 }
 
 struct address_space_operations ll_aops = {
-        readpage: ll_readpage,
-        direct_IO: ll_direct_IO_24,
-        writepage: ll_writepage_24,
-        prepare_write: ll_prepare_write,
-        commit_write: ll_commit_write,
-        removepage: ll_removepage,
-        sync_page: NULL,
-        bmap: NULL
+        .readpage       = ll_readpage,
+        .direct_IO      = ll_direct_IO_24,
+        .writepage      = ll_writepage_24,
+        .prepare_write  = ll_prepare_write,
+        .commit_write   = ll_commit_write,
+        .removepage     = ll_removepage,
+        .sync_page      = NULL,
+        .bmap           = NULL
 };
index d048848..b9193e8 100644 (file)
@@ -95,15 +95,15 @@ out:
 }
 
 struct address_space_operations ll_aops = {
-        readpage: ll_readpage,
-//        readpages: ll_readpages,
-//        direct_IO: ll_direct_IO_26,
-        writepage: ll_writepage_26,
-        writepages: generic_writepages,
-        set_page_dirty: __set_page_dirty_nobuffers,
-        sync_page: NULL,
-        prepare_write: ll_prepare_write,
-        commit_write: ll_commit_write,
-        removepage: ll_removepage,
-        bmap: NULL
+        .readpage       = ll_readpage,
+//        .readpages      = ll_readpages,
+//        .direct_IO      = ll_direct_IO_26,
+        .writepage      = ll_writepage_26,
+        .writepages     = generic_writepages,
+        .set_page_dirty = __set_page_dirty_nobuffers,
+        .sync_page      = NULL,
+        .prepare_write  = ll_prepare_write,
+        .commit_write   = ll_commit_write,
+        .removepage     = ll_removepage,
+        .bmap           = NULL
 };
index e209697..352849e 100644 (file)
@@ -155,8 +155,15 @@ static int ll_special_file_open(struct inode *inode, struct file *filp)
         struct file_operations **pfop = get_save_fops(filp, FILE_OPS);
         int rc = -EINVAL;
 
-        if (pfop && *pfop && (*pfop)->open)
-                rc = (*pfop)->open(inode, filp);
+        if (pfop && *pfop) {
+                fops_get(*pfop);
+
+                if ((*pfop)->open)
+                        rc = (*pfop)->open(inode, filp);
+
+                if (rc)
+                        fops_put(*pfop);
+        }
 
         RETURN(rc);
 }
@@ -193,8 +200,9 @@ static int ll_special_ioctl(struct inode *inode, struct file *filp,
 
         if (pfop && *pfop && (*pfop)->ioctl) {
                 struct file_operations *sfops = filp->f_op;
-                       
+
                 rc = (*pfop)->ioctl(inode, filp, cmd, arg);
+
                 /* sometimes, file_operations will be changed in ioctl */
                 save_fops(filp, inode, sfops);
         }
@@ -259,12 +267,12 @@ static int ll_special_release_internal(struct inode *inode, struct file *filp,
         if (pfop && *pfop) {
                 if ((*pfop)->release)
                         rc = (*pfop)->release(inode, filp);
-                /* FIXME fops_put */
+                fops_put(*pfop);
         }
 
         lprocfs_counter_incr(sbi->ll_stats, LPROC_LL_RELEASE);
-
         err = ll_mdc_close(sbi->ll_mdc_exp, inode, filp);
+
         if (err && rc == 0)
                 rc = err;
 
@@ -281,12 +289,17 @@ static int ll_special_open(struct inode *inode, struct file *filp)
         ENTRY;
 
         if (pfop && *pfop) {
-                /* FIXME fops_get */
+                /* mostly we will have @def_blk_fops here and it is not in a
+                 * module but we do this just to be sure. */
+                fops_get(*pfop);
+
                 if ((*pfop)->open) {
                         rc = (*pfop)->open(inode, filp);
 
-                        /* sometimes file_operations will be changed in open */
-                        save_fops(filp, inode, sfops);
+                        if (rc)
+                                fops_put(*pfop);
+                        else    /* sometimes ops will be changed in open */
+                                save_fops(filp, inode, sfops);
                 }
         }
 
@@ -299,9 +312,11 @@ static int ll_special_open(struct inode *inode, struct file *filp)
                 CERROR("error opening special file: rc %d", rc);
                 ll_mdc_close(ll_i2sbi(inode)->ll_mdc_exp, inode, filp);
         } else if (err) {
-                if (pfop && *pfop && (*pfop)->release)
-                        (*pfop)->release(inode, filp);
-                /* FIXME fops_put */
+                if (pfop && *pfop) {
+                        if ((*pfop)->release)
+                                (*pfop)->release(inode, filp);
+                        fops_put(*pfop);
+                }
                 rc = err;
         }
 
@@ -323,61 +338,62 @@ static int ll_special_file_release(struct inode *inode, struct file *filp)
 }
 
 struct inode_operations ll_special_inode_operations = {
-        setattr_raw:    ll_setattr_raw,
-        setattr:        ll_setattr,
+        .setattr_raw    = ll_setattr_raw,
+        .setattr        = ll_setattr,
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
-        getattr_it:     ll_getattr,
+        .getattr_it     = ll_getattr,
 #else
-        revalidate_it:  ll_inode_revalidate_it,
+        .revalidate_it  = ll_inode_revalidate_it,
 #endif
 };
 
 struct file_operations ll_special_chr_inode_fops = {
-        owner:          THIS_MODULE,
-        open:           ll_special_open,
+        .owner          = THIS_MODULE,
+        .open           = ll_special_open,
 };
 
 struct file_operations ll_special_blk_inode_fops = {
-        owner:          THIS_MODULE,
-        read:           ll_special_read,
-        write:          ll_special_write,
-        ioctl:          ll_special_ioctl,
-        open:           ll_special_open,
-        release:        ll_special_release,
-        mmap:           ll_special_mmap,
-        llseek:         ll_special_seek,
-        fsync:          ll_special_fsync,
+        .owner          = THIS_MODULE,
+        .read           = ll_special_read,
+        .write          = ll_special_write,
+        .ioctl          = ll_special_ioctl,
+        .open           = ll_special_open,
+        .release        = ll_special_release,
+        .mmap           = ll_special_mmap,
+        .llseek         = ll_special_seek,
+        .fsync          = ll_special_fsync,
 };
 
 struct file_operations ll_special_fifo_inode_fops = {
-        owner:          THIS_MODULE,
-        open:           ll_special_open,
+        .owner          = THIS_MODULE,
+        .open           = ll_special_open,
 };
 
 struct file_operations ll_special_sock_inode_fops = {
-        owner:          THIS_MODULE,
-        open:           ll_special_open
+        .owner          = THIS_MODULE,
+        .open           = ll_special_open
 };
 
 struct file_operations ll_special_chr_file_fops = {
-        owner:          THIS_MODULE,
-       llseek:         ll_special_file_seek,
-       read:           ll_special_file_read,
-       write:          ll_special_file_write,
-       poll:           ll_special_file_poll,
-       ioctl:          ll_special_file_ioctl,
-       open:           ll_special_file_open,
-       release:        ll_special_file_release,
-       fasync:         ll_special_file_fasync,
+        .owner          = THIS_MODULE,
+        .llseek         = ll_special_file_seek,
+        .read           = ll_special_file_read,
+        .write          = ll_special_file_write,
+        .poll           = ll_special_file_poll,
+        .ioctl          = ll_special_file_ioctl,
+        .open           = ll_special_file_open,
+        .release        = ll_special_file_release,
+        .fasync         = ll_special_file_fasync,
 };
 
 struct file_operations ll_special_fifo_file_fops = {
-        owner:          THIS_MODULE,
-       llseek:         ll_special_file_seek,
-       read:           ll_special_file_read,
-       write:          ll_special_file_write,
-       poll:           ll_special_file_poll,
-       ioctl:          ll_special_file_ioctl,
-       open:           ll_special_file_open,
-       release:        ll_special_file_release,
+        .owner          = THIS_MODULE,
+        .llseek         = ll_special_file_seek,
+        .read           = ll_special_file_read,
+        .write          = ll_special_file_write,
+        .poll           = ll_special_file_poll,
+        .ioctl          = ll_special_file_ioctl,
+        .open           = ll_special_file_open,
+        .release        = ll_special_file_release,
 };
+
index 4d2befe..133407a 100644 (file)
@@ -61,30 +61,30 @@ static struct super_block *lustre_read_super(struct super_block *sb,
 }
 
 static struct file_system_type lustre_lite_fs_type = {
-        name:           "lustre_lite",
-        fs_flags:       FS_NFSEXP_FSID,
-        read_super:     ll_read_super,
-        owner:          THIS_MODULE,
+        .owner          = THIS_MODULE,
+        .name           = "lustre_lite",
+        .fs_flags       = FS_NFSEXP_FSID,
+        .read_super     = ll_read_super,
 };
 
 /* exported operations */
 struct super_operations lustre_super_operations =
 {
-        read_inode2: ll_read_inode2,
-        clear_inode: ll_clear_inode,
-        //        delete_inode: ll_delete_inode,
-        put_super: lustre_put_super,
-        statfs: ll_statfs,
-        umount_begin: ll_umount_begin,
-        fh_to_dentry: ll_fh_to_dentry,
-        dentry_to_fh: ll_dentry_to_fh
+        .read_inode2    = ll_read_inode2,
+        .clear_inode    = ll_clear_inode,
+//        .delete_inode   = ll_delete_inode,
+        .put_super      = lustre_put_super,
+        .statfs         = ll_statfs,
+        .umount_begin   = ll_umount_begin,
+        .fh_to_dentry   = ll_fh_to_dentry,
+        .dentry_to_fh   = ll_dentry_to_fh
 };
 
 static struct file_system_type lustre_fs_type = {
-        name:           "lustre",
-        fs_flags:       FS_NFSEXP_FSID,
-        read_super:     lustre_read_super,
-        owner:          THIS_MODULE,
+        .owner          = THIS_MODULE,
+        .name           = "lustre",
+        .fs_flags       = FS_NFSEXP_FSID,
+        .read_super     = lustre_read_super,
 };
 
 static int __init init_lustre_lite(void)
index 9e9c83e..cc9f533 100644 (file)
@@ -100,27 +100,27 @@ void ll_destroy_inodecache(void)
 /* exported operations */
 struct super_operations lustre_super_operations =
 {
-        .alloc_inode = ll_alloc_inode,
+        .alloc_inode   = ll_alloc_inode,
         .destroy_inode = ll_destroy_inode,
-        .clear_inode = ll_clear_inode,
-        .put_super = lustre_put_super,
-        .statfs = ll_statfs,
-        .umount_begin = ll_umount_begin
+        .clear_inode   = ll_clear_inode,
+        .put_super     = lustre_put_super,
+        .statfs        = ll_statfs,
+        .umount_begin  = ll_umount_begin
 };
 
 
 struct file_system_type lustre_lite_fs_type = {
-        .owner  = THIS_MODULE,
-        .name =   "lustre_lite",
-        .get_sb = ll_get_sb,
-        .kill_sb = kill_anon_super,
+        .owner        = THIS_MODULE,
+        .name         = "lustre_lite",
+        .get_sb       = ll_get_sb,
+        .kill_sb      = kill_anon_super,
 };
 
 struct file_system_type lustre_fs_type = {
-        .owner  = THIS_MODULE,
-        .name =   "lustre",
-        .get_sb = lustre_get_sb,
-        .kill_sb = kill_anon_super,
+        .owner        = THIS_MODULE,
+        .name         = "lustre",
+        .get_sb       = lustre_get_sb,
+        .kill_sb      = kill_anon_super,
 };
 
 static int __init init_lustre_lite(void)
index 3056bf5..e401266 100644 (file)
@@ -148,13 +148,13 @@ static int ll_follow_link(struct dentry *dentry, struct nameidata *nd)
 }
 
 struct inode_operations ll_fast_symlink_inode_operations = {
-        readlink:       ll_readlink,
-        setattr:        ll_setattr,
-        setattr_raw:    ll_setattr_raw,
-        follow_link:    ll_follow_link,
+        .readlink       = ll_readlink,
+        .setattr        = ll_setattr,
+        .setattr_raw    = ll_setattr_raw,
+        .follow_link    = ll_follow_link,
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
-        revalidate_it:  ll_inode_revalidate_it
+        .revalidate_it  = ll_inode_revalidate_it
 #else 
-        getattr_it:     ll_getattr
+        .getattr_it     = ll_getattr
 #endif
 };
index 702fcbe..5ed596b 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 1a8bcd4..ff27268 100644 (file)
@@ -470,7 +470,6 @@ static obd_size lov_stripe_size(struct lov_stripe_md *lsm, obd_size ost_size,
 
         /* do_div(a, b) returns a % b, and a = a / b */
         stripe_size = do_div(ost_size, ssize);
-
         if (stripe_size)
                 lov_size = ost_size * swidth + stripeno * ssize + stripe_size;
         else
@@ -2680,6 +2679,7 @@ __u64 lov_merge_size(struct lov_stripe_md *lsm, int kms)
                 if (lov_size > size)
                         size = lov_size;
         }
+
         return size;
 }
 EXPORT_SYMBOL(lov_merge_size);
@@ -2825,40 +2825,40 @@ void lov_increase_kms(struct obd_export *exp, struct lov_stripe_md *lsm,
 EXPORT_SYMBOL(lov_increase_kms);
 
 struct obd_ops lov_obd_ops = {
-        o_owner:       THIS_MODULE,
-        o_setup:       lov_setup,
-        o_cleanup:     lov_cleanup,
-        o_connect:     lov_connect,
-        o_disconnect:  lov_disconnect,
-        o_statfs:      lov_statfs,
-        o_packmd:      lov_packmd,
-        o_unpackmd:    lov_unpackmd,
-        o_create:      lov_create,
-        o_destroy:     lov_destroy,
-        o_getattr:     lov_getattr,
-        o_getattr_async: lov_getattr_async,
-        o_setattr:     lov_setattr,
-        o_brw:         lov_brw,
-        o_brw_async:   lov_brw_async,
-        .o_prep_async_page =    lov_prep_async_page,
-        .o_queue_async_io =     lov_queue_async_io,
-        .o_set_async_flags =    lov_set_async_flags,
-        .o_queue_group_io =     lov_queue_group_io,
-        .o_trigger_group_io =   lov_trigger_group_io,
-        .o_teardown_async_page  lov_teardown_async_page,
-        o_punch:       lov_punch,
-        o_sync:        lov_sync,
-        o_enqueue:     lov_enqueue,
-        o_match:       lov_match,
-        o_change_cbdata: lov_change_cbdata,
-        o_cancel:      lov_cancel,
-        o_cancel_unused: lov_cancel_unused,
-        o_iocontrol:   lov_iocontrol,
-        o_get_info:    lov_get_info,
-        o_set_info:    lov_set_info,
-        o_llog_init:   lov_llog_init,
-        o_llog_finish: lov_llog_finish,
-        o_notify: lov_notify,
+        .o_owner               = THIS_MODULE,
+        .o_setup               = lov_setup,
+        .o_cleanup             = lov_cleanup,
+        .o_connect             = lov_connect,
+        .o_disconnect          = lov_disconnect,
+        .o_statfs              = lov_statfs,
+        .o_packmd              = lov_packmd,
+        .o_unpackmd            = lov_unpackmd,
+        .o_create              = lov_create,
+        .o_destroy             = lov_destroy,
+        .o_getattr             = lov_getattr,
+        .o_getattr_async       = lov_getattr_async,
+        .o_setattr             = lov_setattr,
+        .o_brw                 = lov_brw,
+        .o_brw_async           = lov_brw_async,
+        .o_prep_async_page     = lov_prep_async_page,
+        .o_queue_async_io      = lov_queue_async_io,
+        .o_set_async_flags     = lov_set_async_flags,
+        .o_queue_group_io      = lov_queue_group_io,
+        .o_trigger_group_io    = lov_trigger_group_io,
+        .o_teardown_async_page = lov_teardown_async_page,
+        .o_punch               = lov_punch,
+        .o_sync                = lov_sync,
+        .o_enqueue             = lov_enqueue,
+        .o_match               = lov_match,
+        .o_change_cbdata       = lov_change_cbdata,
+        .o_cancel              = lov_cancel,
+        .o_cancel_unused       = lov_cancel_unused,
+        .o_iocontrol           = lov_iocontrol,
+        .o_get_info            = lov_get_info,
+        .o_set_info            = lov_set_info,
+        .o_llog_init           = lov_llog_init,
+        .o_llog_finish         = lov_llog_finish,
+        .o_notify              = lov_notify,
 };
 
 int __init lov_init(void)
index da1e433..ffeec5c 100644 (file)
@@ -13,3 +13,5 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
+sources
index 1ef8238..791e48d 100644 (file)
@@ -5,11 +5,11 @@ lvfs-objs := lvfs_common.o lvfs_linux.o fsfilt.o
 ifeq ($(PATCHLEVEL),6)
 fsfilt_@BACKINGFS@-objs := fsfilt-@BACKINGFS@.o
 
-fsfilt-%.c: fsfilt_%.c
+$(obj)/fsfilt-%.c: $(obj)/fsfilt_%.c
        ln -s $< $@
 endif
 
 # for <ext3/xattr.h> on 2.6
-EXTRA_CFLAGS := -I@LINUX@/fs -I@LUSTRE@
+EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs
 
 @INCLUDE_RULES@
index 7eb8158..1261554 100644 (file)
@@ -18,7 +18,8 @@ if MODULES
 
 modulefs_DATA = lvfs$(KMODEXT) fsfilt_$(BACKINGFS)$(KMODEXT)
 
-$(modulefs_DATA): fsfilt_$(BACKINGFS).c
+sources: fsfilt_$(BACKINGFS).c
+       touch sources
 
 fsfilt_extN.c: fsfilt_ext3.c
        sed -e "s/EXT3/EXTN/g" -e "s/ext3/extN/g" $< > $@
@@ -38,4 +39,4 @@ DIST_SOURCES = fsfilt.c fsfilt_ext3.c fsfilt_reiserfs.c lvfs_common.c \
        lvfs_internal.h lvfs_linux.c lvfs_userfs.c
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
-CLEANFILES = fsfilt-*.c fsfilt_ldiskfs.c fsfilt_extN.c
+CLEANFILES = fsfilt-*.c fsfilt_ldiskfs.c fsfilt_extN.c sources
index 35f89e2..5457625 100644 (file)
 #include <linux/ext3_fs.h>
 #include <linux/ext3_jbd.h>
 #include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 #include <linux/ext3_xattr.h>
+#else
+#include <ext3/xattr.h>
+#endif
 
 #include <linux/kp30.h>
 #include <linux/lustre_fsfilt.h>
@@ -297,12 +301,11 @@ static int fsfilt_ext3_commit(struct inode *inode, void *h, int force_sync)
         rc = journal_stop(handle);
         unlock_kernel();
 
-        // LASSERT(current->journal_info == NULL);
         return rc;
 }
 
 static int fsfilt_ext3_commit_async(struct inode *inode, void *h,
-                                        void **wait_handle)
+                                    void **wait_handle)
 {
         unsigned long tid;
         transaction_t *transaction;
@@ -781,27 +784,27 @@ static int fsfilt_ext3_get_op_len(int op, struct fsfilt_objinfo *fso, int logs)
 }
 
 static struct fsfilt_operations fsfilt_ext3_ops = {
-        fs_type:                "ext3",
-        fs_owner:               THIS_MODULE,
-        fs_start:               fsfilt_ext3_start,
-        fs_brw_start:           fsfilt_ext3_brw_start,
-        fs_commit:              fsfilt_ext3_commit,
-        fs_commit_async:        fsfilt_ext3_commit_async,
-        fs_commit_wait:         fsfilt_ext3_commit_wait,
-        fs_setattr:             fsfilt_ext3_setattr,
-        fs_iocontrol:           fsfilt_ext3_iocontrol,
-        fs_set_md:              fsfilt_ext3_set_md,
-        fs_get_md:              fsfilt_ext3_get_md,
-        fs_readpage:            fsfilt_ext3_readpage,
-        fs_add_journal_cb:      fsfilt_ext3_add_journal_cb,
-        fs_statfs:              fsfilt_ext3_statfs,
-        fs_sync:                fsfilt_ext3_sync,
-        fs_map_inode_page:      fsfilt_ext3_map_inode_page,
-        fs_prep_san_write:      fsfilt_ext3_prep_san_write,
-        fs_write_record:        fsfilt_ext3_write_record,
-        fs_read_record:         fsfilt_ext3_read_record,
-        fs_setup:               fsfilt_ext3_setup,
-        fs_get_op_len:          fsfilt_ext3_get_op_len,
+        .fs_type                = "ext3",
+        .fs_owner               = THIS_MODULE,
+        .fs_start               = fsfilt_ext3_start,
+        .fs_brw_start           = fsfilt_ext3_brw_start,
+        .fs_commit              = fsfilt_ext3_commit,
+        .fs_commit_async        = fsfilt_ext3_commit_async,
+        .fs_commit_wait         = fsfilt_ext3_commit_wait,
+        .fs_setattr             = fsfilt_ext3_setattr,
+        .fs_iocontrol           = fsfilt_ext3_iocontrol,
+        .fs_set_md              = fsfilt_ext3_set_md,
+        .fs_get_md              = fsfilt_ext3_get_md,
+        .fs_readpage            = fsfilt_ext3_readpage,
+        .fs_add_journal_cb      = fsfilt_ext3_add_journal_cb,
+        .fs_statfs              = fsfilt_ext3_statfs,
+        .fs_sync                = fsfilt_ext3_sync,
+        .fs_map_inode_page      = fsfilt_ext3_map_inode_page,
+        .fs_prep_san_write      = fsfilt_ext3_prep_san_write,
+        .fs_write_record        = fsfilt_ext3_write_record,
+        .fs_read_record         = fsfilt_ext3_read_record,
+        .fs_setup               = fsfilt_ext3_setup,
+        .fs_get_op_len          = fsfilt_ext3_get_op_len,
 };
 
 static int __init fsfilt_ext3_init(void)
index b38ba4a..861b663 100644 (file)
@@ -213,19 +213,19 @@ static int fsfilt_reiserfs_get_op_len(int op, struct fsfilt_objinfo *fso,
         return 0;
 }
 static struct fsfilt_operations fsfilt_reiserfs_ops = {
-        fs_type:                "reiserfs",
-        fs_owner:               THIS_MODULE,
-        fs_start:               fsfilt_reiserfs_start,
-        fs_brw_start:           fsfilt_reiserfs_brw_start,
-        fs_commit:              fsfilt_reiserfs_commit,
-        fs_setattr:             fsfilt_reiserfs_setattr,
-        fs_set_md:              fsfilt_reiserfs_set_md,
-        fs_get_md:              fsfilt_reiserfs_get_md,
-        fs_readpage:            fsfilt_reiserfs_readpage,
-        fs_add_journal_cb:      fsfilt_reiserfs_add_journal_cb,
-        fs_statfs:              fsfilt_reiserfs_statfs,
-        fs_sync:                fsfilt_reiserfs_sync,
-        fs_get_op_len:          fsfilt_reiserfs_get_op_len,
+        .fs_type                = "reiserfs",
+        .fs_owner               = THIS_MODULE,
+        .fs_start               = fsfilt_reiserfs_start,
+        .fs_brw_start           = fsfilt_reiserfs_brw_start,
+        .fs_commit              = fsfilt_reiserfs_commit,
+        .fs_setattr             = fsfilt_reiserfs_setattr,
+        .fs_set_md              = fsfilt_reiserfs_set_md,
+        .fs_get_md              = fsfilt_reiserfs_get_md,
+        .fs_readpage            = fsfilt_reiserfs_readpage,
+        .fs_add_journal_cb      = fsfilt_reiserfs_add_journal_cb,
+        .fs_statfs              = fsfilt_reiserfs_statfs,
+        .fs_sync                = fsfilt_reiserfs_sync,
+        .fs_get_op_len          = fsfilt_reiserfs_get_op_len,
 };
 
 static int __init fsfilt_reiserfs_init(void)
index e31a39b..5d26f00 100644 (file)
@@ -12,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index fe0144a..30e4fc1 100644 (file)
@@ -995,20 +995,20 @@ static int mdc_llog_finish(struct obd_device *obd, int count)
 }
 
 struct obd_ops mdc_obd_ops = {
-        o_owner:       THIS_MODULE,
-        o_setup:       mdc_setup,
-        o_precleanup:  mdc_precleanup,
-        o_cleanup:     mdc_cleanup,
-        o_connect:     client_connect_import,
-        o_disconnect:  client_disconnect_export,
-        o_iocontrol:   mdc_iocontrol,
-        o_set_info:    mdc_set_info,
-        o_statfs:      mdc_statfs,
-        o_pin:         mdc_pin,
-        o_unpin:       mdc_unpin,
-        o_import_event: mdc_import_event,
-        o_llog_init:   mdc_llog_init,
-        o_llog_finish: mdc_llog_finish,
+        .o_owner        = THIS_MODULE,
+        .o_setup        = mdc_setup,
+        .o_precleanup   = mdc_precleanup,
+        .o_cleanup      = mdc_cleanup,
+        .o_connect      = client_connect_import,
+        .o_disconnect   = client_disconnect_export,
+        .o_iocontrol    = mdc_iocontrol,
+        .o_set_info     = mdc_set_info,
+        .o_statfs       = mdc_statfs,
+        .o_pin          = mdc_pin,
+        .o_unpin        = mdc_unpin,
+        .o_import_event = mdc_import_event,
+        .o_llog_init    = mdc_llog_init,
+        .o_llog_finish  = mdc_llog_finish,
 };
 
 int __init mdc_init(void)
index 5925e76..d5103fa 100644 (file)
@@ -12,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.o.flags
 .tmp_versions
+.depend
index 623af10..b05a4b5 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulefs_DATA = mds$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(mds-objs:%.o=%.c) mds_internal.h
index 84a3f0d..2d97357 100644 (file)
@@ -1925,28 +1925,28 @@ struct lvfs_callback_ops mds_lvfs_ops = {
 
 /* use obd ops to offer management infrastructure */
 static struct obd_ops mds_obd_ops = {
-        o_owner:       THIS_MODULE,
-        o_connect:     mds_connect,
-        o_init_export:  mds_init_export,
-        o_destroy_export:  mds_destroy_export,
-        o_disconnect:  mds_disconnect,
-        o_setup:       mds_setup,
-        o_precleanup:  mds_precleanup,
-        o_cleanup:     mds_cleanup,
-        o_postrecov:   mds_postrecov,
-        o_statfs:      mds_obd_statfs,
-        o_iocontrol:   mds_iocontrol,
-        o_create:      mds_obd_create,
-        o_destroy:     mds_obd_destroy,
-        o_llog_init:   mds_llog_init,
-        o_llog_finish: mds_llog_finish,
-        o_notify:      mds_notify,
+        .o_owner           = THIS_MODULE,
+        .o_connect         = mds_connect,
+        .o_init_export     = mds_init_export,
+        .o_destroy_export  = mds_destroy_export,
+        .o_disconnect      = mds_disconnect,
+        .o_setup           = mds_setup,
+        .o_precleanup      = mds_precleanup,
+        .o_cleanup         = mds_cleanup,
+        .o_postrecov       = mds_postrecov,
+        .o_statfs          = mds_obd_statfs,
+        .o_iocontrol       = mds_iocontrol,
+        .o_create          = mds_obd_create,
+        .o_destroy         = mds_obd_destroy,
+        .o_llog_init       = mds_llog_init,
+        .o_llog_finish     = mds_llog_finish,
+        .o_notify          = mds_notify,
 };
 
 static struct obd_ops mdt_obd_ops = {
-        o_owner:       THIS_MODULE,
-        o_setup:       mdt_setup,
-        o_cleanup:     mdt_cleanup,
+        .o_owner           = THIS_MODULE,
+        .o_setup           = mdt_setup,
+        .o_cleanup         = mdt_cleanup,
 };
 
 static int __init mds_init(void)
index c6b6839..2eece4d 100644 (file)
@@ -192,16 +192,14 @@ int mds_lov_connect(struct obd_device *obd, char * lov_name)
 
         mds->mds_osc_obd = class_name2obd(lov_name);
         if (!mds->mds_osc_obd) {
-                CERROR("MDS cannot locate LOV %s\n",
-                       lov_name);
+                CERROR("MDS cannot locate LOV %s\n", lov_name);
                 mds->mds_osc_obd = ERR_PTR(-ENOTCONN);
                 RETURN(-ENOTCONN);
         }
 
         rc = obd_connect(&conn, mds->mds_osc_obd, &obd->obd_uuid);
         if (rc) {
-                CERROR("MDS cannot connect to LOV %s (%d)\n",
-                       lov_name, rc);
+                CERROR("MDS cannot connect to LOV %s (%d)\n", lov_name, rc);
                 mds->mds_osc_obd = ERR_PTR(rc);
                 RETURN(rc);
         }
index 5cbcfae..313a9d5 100644 (file)
@@ -253,9 +253,9 @@ static int mgmtcli_cleanup(struct obd_device *obd, int flags)
 }
 
 static struct obd_ops mgmtcli_obd_ops = {
-        o_owner:   THIS_MODULE,
-        o_setup:   mgmtcli_setup,
-        o_cleanup: client_obd_cleanup
+        .o_owner   = THIS_MODULE,
+        .o_setup   = mgmtcli_setup,
+        .o_cleanup = client_obd_cleanup
 };
 
 static int __init mgmtcli_init(void)
index 8743e72..88fbf48 100644 (file)
@@ -125,11 +125,11 @@ static int mgmt_cleanup(struct obd_device *obd, int flags)
 }
 
 static struct obd_ops mgmt_obd_ops = {
-        o_owner:      THIS_MODULE,
-        o_setup:      mgmt_setup,
-        o_cleanup:    mgmt_cleanup,
-        o_connect:    class_connect,
-        o_disconnect: class_disconnect
+        .o_owner      = THIS_MODULE,
+        .o_setup      = mgmt_setup,
+        .o_cleanup    = mgmt_cleanup,
+        .o_connect    = class_connect,
+        .o_disconnect = class_disconnect
 };
 
 static int __init mgmt_init(void)
index e31a39b..5d26f00 100644 (file)
@@ -12,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index a35ab94..d092fc5 100644 (file)
@@ -8,7 +8,7 @@ obdclass-objs += statfs_pack.o obdo.o obd_config.o
 ifeq ($(PATCHLEVEL),6)
 llog_test-objs := llog-test.o
 
-llog-test.c: llog_test.c
+$(obj)/llog-test.c: $(obj)/llog_test.c
        ln -sf $< $@
 endif
 
index a8a1049..79ba5ac 100644 (file)
@@ -13,19 +13,6 @@ endif
 if MODULES
 modulefs_DATA = obdclass$(KMODEXT)
 noinst_DATA = llog_test$(KMODEXT)
-
-$(modulefs_DATA): lustre_build_version llog-test.c
-
-llog-test.c: llog_test.c
-       ln -s $< $@
-
-lustre_build_version: FORCE
-       perl $(top_builddir)/scripts/version_tag.pl $(top_srcdir) $(top_builddir) > tmpver
-       echo "#define LUSTRE_RELEASE @RELEASE@" >> tmpver
-       cmp -s $(top_builddir)/include/linux/lustre_build_version.h tmpver \
-                2> /dev/null &&                                            \
-                $(RM) tmpver ||                                            \
-                mv tmpver $(top_builddir)/include/linux/lustre_build_version.h
 endif # MODULES
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c llog-test.c
index a45e57d..049db79 100644 (file)
@@ -652,12 +652,11 @@ static int llog_test_setup(struct obd_device *obd, obd_count len, void *buf)
 }
 
 static struct obd_ops llog_obd_ops = {
-        o_owner:       THIS_MODULE,
-        o_setup:       llog_test_setup,
-        o_cleanup:     llog_test_cleanup,
-        o_llog_init:   llog_test_llog_init,
-        o_llog_finish: llog_test_llog_finish,
-
+        .o_owner       = THIS_MODULE,
+        .o_setup       = llog_test_setup,
+        .o_cleanup     = llog_test_cleanup,
+        .o_llog_init   = llog_test_llog_init,
+        .o_llog_finish = llog_test_llog_finish,
 };
 
 static struct lprocfs_vars lprocfs_obd_vars[] = { {0} };
index fcfb991..d5ef04c 100644 (file)
@@ -542,11 +542,11 @@ static int lprocfs_stats_seq_open(struct inode *inode, struct file *file)
 }
 
 struct file_operations lprocfs_stats_seq_fops = {
-        owner:   THIS_MODULE,
-        open:    lprocfs_stats_seq_open,
-        read:    seq_read,
-        llseek:  seq_lseek,
-        release: seq_release,
+        .owner   = THIS_MODULE,
+        .open    = lprocfs_stats_seq_open,
+        .read    = seq_read,
+        .llseek  = seq_lseek,
+        .release = seq_release,
 };
 
 int lprocfs_register_stats(struct proc_dir_entry *root, const char *name,
index 808bb41..e9be311 100644 (file)
@@ -489,18 +489,18 @@ static int echo_cleanup(struct obd_device *obd, int flags)
 }
 
 static struct obd_ops echo_obd_ops = {
-        o_owner:           THIS_MODULE,
-        o_connect:         echo_connect,
-        o_disconnect:      echo_disconnect,
-        o_destroy_export:  echo_destroy_export,
-        o_create:          echo_create,
-        o_destroy:         echo_destroy,
-        o_getattr:         echo_getattr,
-        o_setattr:         echo_setattr,
-        o_preprw:          echo_preprw,
-        o_commitrw:        echo_commitrw,
-        o_setup:           echo_setup,
-        o_cleanup:         echo_cleanup
+        .o_owner           = THIS_MODULE,
+        .o_connect         = echo_connect,
+        .o_disconnect      = echo_disconnect,
+        .o_destroy_export  = echo_destroy_export,
+        .o_create          = echo_create,
+        .o_destroy         = echo_destroy,
+        .o_getattr         = echo_getattr,
+        .o_setattr         = echo_setattr,
+        .o_preprw          = echo_preprw,
+        .o_commitrw        = echo_commitrw,
+        .o_setup           = echo_setup,
+        .o_cleanup         = echo_cleanup
 };
 
 extern int echo_client_init(void);
index 5b1be3d..67935cb 100644 (file)
@@ -1436,12 +1436,12 @@ static int echo_client_disconnect(struct obd_export *exp, int flags)
 }
 
 static struct obd_ops echo_obd_ops = {
-        o_owner:       THIS_MODULE,
-        o_setup:       echo_client_setup,
-        o_cleanup:     echo_client_cleanup,
-        o_iocontrol:   echo_client_iocontrol,
-        o_connect:     echo_client_connect,
-        o_disconnect:  echo_client_disconnect
+        .o_owner       = THIS_MODULE,
+        .o_setup       = echo_client_setup,
+        .o_cleanup     = echo_client_cleanup,
+        .o_iocontrol   = echo_client_iocontrol,
+        .o_connect     = echo_client_connect,
+        .o_disconnect  = echo_client_disconnect
 };
 
 int echo_client_init(void)
index e31a39b..5d26f00 100644 (file)
@@ -12,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index e2049d9..09d52b2 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulefs_DATA = obdfilter$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(obdfilter-objs:%.o=%.c) filter_io_24.c filter_io_26.c filter_internal.h
index 6673ddb..944aa0e 100644 (file)
@@ -1745,12 +1745,15 @@ static void filter_destroy_precreated(struct obd_export *exp, struct obdo *oa,
         LASSERT(oa);
 
         memset(&doa, 0, sizeof(doa));
-        if (oa->o_valid & OBD_MD_FLGROUP)
+        if (oa->o_valid & OBD_MD_FLGROUP) {
+                doa.o_valid |= OBD_MD_FLGROUP;
                 doa.o_gr = oa->o_gr;
-        else
+        } else {
                 doa.o_gr = 0;
+        }
         doa.o_mode = S_IFREG;
-        last = filter_last_id(filter, &doa); /* FIXME: object groups */
+
+        last = filter_last_id(filter, &doa);
         CWARN("deleting orphan objects from "LPU64" to "LPU64"\n",
                oa->o_id + 1, last);
         for (id = oa->o_id + 1; id <= last; id++) {
@@ -1758,14 +1761,14 @@ static void filter_destroy_precreated(struct obd_export *exp, struct obdo *oa,
                 filter_destroy(exp, &doa, NULL, NULL);
         }
         spin_lock(&filter->fo_objidlock);
-        filter->fo_last_objids[0] = oa->o_id; /* FIXME: object groups */
+        filter->fo_last_objids[doa.o_gr] = oa->o_id;
         spin_unlock(&filter->fo_objidlock);
         EXIT;
 }
 
 /* returns a negative error or a nonnegative number of files to create */
 static int filter_should_precreate(struct obd_export *exp, struct obdo *oa,
-                                   int group)
+                                   obd_gr group)
 {
         struct obd_device *obd = exp->exp_obd;
         struct filter_obd *filter = &obd->u.filter;
@@ -1838,7 +1841,7 @@ static int filter_precreate(struct obd_device *obd, struct obdo *oa,
                 if (recreate_obj) {
                         __u64 last_id;
                         next_id = oa->o_id;
-                        last_id = filter_last_id(filter, NULL);
+                        last_id = filter_last_id(filter, oa);
                         if (next_id > last_id) {
                                 CERROR("Error: Trying to recreate obj greater"
                                        "than last id "LPD64" > "LPD64"\n",
@@ -1846,7 +1849,7 @@ static int filter_precreate(struct obd_device *obd, struct obdo *oa,
                                 RETURN(-EINVAL);
                         }
                 } else
-                        next_id = filter_last_id(filter, NULL) + 1;
+                        next_id = filter_last_id(filter, oa) + 1;
 
                 CDEBUG(D_INFO, "precreate objid "LPU64"\n", next_id);
 
@@ -1890,7 +1893,7 @@ static int filter_precreate(struct obd_device *obd, struct obdo *oa,
                 }
 
                 if (!recreate_obj) {
-                        filter_set_last_id(filter, NULL, next_id);
+                        filter_set_last_id(filter, oa, next_id);
                         err = filter_update_last_objid(obd, group, 0);
                         if (err)
                                 CERROR("unable to write lastobjid "
@@ -2377,56 +2380,56 @@ static struct lvfs_callback_ops filter_lvfs_ops = {
 };
 
 static struct obd_ops filter_obd_ops = {
-        o_owner:          THIS_MODULE,
-        o_get_info:       filter_get_info,
-        o_set_info:       filter_set_info,
-        o_setup:          filter_setup,
-        o_precleanup:     filter_precleanup,
-        o_cleanup:        filter_cleanup,
-        o_connect:        filter_connect,
-        o_disconnect:     filter_disconnect,
-        o_statfs:         filter_statfs,
-        o_getattr:        filter_getattr,
-        o_unpackmd:       filter_unpackmd,
-        o_create:         filter_create,
-        o_setattr:        filter_setattr,
-        o_destroy:        filter_destroy,
-        o_brw:            filter_brw,
-        o_punch:          filter_truncate,
-        o_sync:           filter_sync,
-        o_preprw:         filter_preprw,
-        o_commitrw:       filter_commitrw,
-        o_destroy_export: filter_destroy_export,
-        o_llog_init:      filter_llog_init,
-        o_llog_finish:    filter_llog_finish,
-        o_iocontrol:      filter_iocontrol,
+        .o_owner          = THIS_MODULE,
+        .o_get_info       = filter_get_info,
+        .o_set_info       = filter_set_info,
+        .o_setup          = filter_setup,
+        .o_precleanup     = filter_precleanup,
+        .o_cleanup        = filter_cleanup,
+        .o_connect        = filter_connect,
+        .o_disconnect     = filter_disconnect,
+        .o_statfs         = filter_statfs,
+        .o_getattr        = filter_getattr,
+        .o_unpackmd       = filter_unpackmd,
+        .o_create         = filter_create,
+        .o_setattr        = filter_setattr,
+        .o_destroy        = filter_destroy,
+        .o_brw            = filter_brw,
+        .o_punch          = filter_truncate,
+        .o_sync           = filter_sync,
+        .o_preprw         = filter_preprw,
+        .o_commitrw       = filter_commitrw,
+        .o_destroy_export = filter_destroy_export,
+        .o_llog_init      = filter_llog_init,
+        .o_llog_finish    = filter_llog_finish,
+        .o_iocontrol      = filter_iocontrol,
 };
 
 static struct obd_ops filter_sanobd_ops = {
-        o_owner:          THIS_MODULE,
-        o_get_info:       filter_get_info,
-        o_set_info:       filter_set_info,
-        o_setup:          filter_san_setup,
-        o_precleanup:     filter_precleanup,
-        o_cleanup:        filter_cleanup,
-        o_connect:        filter_connect,
-        o_disconnect:     filter_disconnect,
-        o_statfs:         filter_statfs,
-        o_getattr:        filter_getattr,
-        o_unpackmd:       filter_unpackmd,
-        o_create:         filter_create,
-        o_setattr:        filter_setattr,
-        o_destroy:        filter_destroy,
-        o_brw:            filter_brw,
-        o_punch:          filter_truncate,
-        o_sync:           filter_sync,
-        o_preprw:         filter_preprw,
-        o_commitrw:       filter_commitrw,
-        o_san_preprw:     filter_san_preprw,
-        o_destroy_export: filter_destroy_export,
-        o_llog_init:      filter_llog_init,
-        o_llog_finish:    filter_llog_finish,
-        o_iocontrol:      filter_iocontrol,
+        .o_owner          = THIS_MODULE,
+        .o_get_info       = filter_get_info,
+        .o_set_info       = filter_set_info,
+        .o_setup          = filter_san_setup,
+        .o_precleanup     = filter_precleanup,
+        .o_cleanup        = filter_cleanup,
+        .o_connect        = filter_connect,
+        .o_disconnect     = filter_disconnect,
+        .o_statfs         = filter_statfs,
+        .o_getattr        = filter_getattr,
+        .o_unpackmd       = filter_unpackmd,
+        .o_create         = filter_create,
+        .o_setattr        = filter_setattr,
+        .o_destroy        = filter_destroy,
+        .o_brw            = filter_brw,
+        .o_punch          = filter_truncate,
+        .o_sync           = filter_sync,
+        .o_preprw         = filter_preprw,
+        .o_commitrw       = filter_commitrw,
+        .o_san_preprw     = filter_san_preprw,
+        .o_destroy_export = filter_destroy_export,
+        .o_llog_init      = filter_llog_init,
+        .o_llog_finish    = filter_llog_finish,
+        .o_iocontrol      = filter_iocontrol,
 };
 
 static int __init obdfilter_init(void)
index 3794bba..c90d371 100644 (file)
@@ -95,22 +95,24 @@ static int filter_range_is_mapped(struct inode *inode, obd_size offset, int len)
         return 1;
 }
 
-int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
-                          struct obd_ioobj *obj, int niocount,
+int filter_commitrw_write(struct obd_export *exp, struct obdo *oa,
+                          int objcount, struct obd_ioobj *obj, int niocount,
                           struct niobuf_local *res, struct obd_trans_info *oti,
                           int rc)
 {
-        struct obd_device *obd = exp->exp_obd;
-        struct obd_run_ctxt saved;
+        struct bio *bio = NULL;
+        int blocks_per_page, err;
         struct niobuf_local *lnb;
+        struct obd_run_ctxt saved;
         struct fsfilt_objinfo fso;
-        struct iattr iattr = { .ia_valid = ATTR_SIZE, .ia_size = 0, };
+        struct iattr iattr = { 0 };
         struct inode *inode = NULL;
-        int i, k, cleanup_phase = 0, err;
-        unsigned long now = jiffies; /* DEBUGGING OST TIMEOUTS */
-        int blocks_per_page;
+        unsigned long now = jiffies;
+        int i, k, cleanup_phase = 0;
+
         struct dio_request *dreq = NULL;
-        struct bio *bio = NULL;
+        struct obd_device *obd = exp->exp_obd;
+
         ENTRY;
         LASSERT(oti != NULL);
         LASSERT(objcount == 1);
@@ -124,8 +126,10 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
         LASSERT(blocks_per_page <= MAX_BLOCKS_PER_PAGE);
 
         OBD_ALLOC(dreq, sizeof(*dreq));
+
         if (dreq == NULL)
                 RETURN(-ENOMEM);
+
         dreq->bio_list = NULL;
         init_waitqueue_head(&dreq->wait);
         atomic_set(&dreq->numreqs, 0);
@@ -138,7 +142,9 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
         push_ctxt(&saved, &obd->obd_ctxt, NULL);
         cleanup_phase = 2;
 
-        oti->oti_handle = fsfilt_brw_start(obd, objcount, &fso, niocount, res, oti);
+        oti->oti_handle = fsfilt_brw_start(obd, objcount, &fso,
+                                           niocount, res, oti);
+        
         if (IS_ERR(oti->oti_handle)) {
                 rc = PTR_ERR(oti->oti_handle);
                 CDEBUG(rc == -ENOSPC ? D_INODE : D_ERROR,
@@ -161,13 +167,13 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
                     filter_range_is_mapped(inode, lnb->offset, lnb->len))
                         lnb->rc = 0;
 
-                if (lnb->rc) /* ENOSPC, network RPC error */
+                if (lnb->rc) /* ENOSPC, network RPC error, etc. */ 
                         continue;
 
                 /* get block number for next page */
                 rc = fsfilt_map_inode_page(obd, inode, lnb->page, dreq->blocks,
                                            dreq->created, 1);
-                if (rc)
+                if (rc != 0)
                         GOTO(cleanup, rc);
 
                 for (k = 0; k < blocks_per_page; k++) {
@@ -216,26 +222,30 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
                 bio_put(bio);
         }
 
-        if (rc == 0) {
-                down(&inode->i_sem);
-                if (iattr.ia_size > inode->i_size) {
-                        CDEBUG(D_INFO, "setting i_size to "LPU64"\n",
-                               iattr.ia_size);
-                        fsfilt_setattr(obd, res->dentry, oti->oti_handle,
-                                       &iattr, 0);
-                }
-                up(&inode->i_sem);
+        down(&inode->i_sem);
+        if (iattr.ia_size > inode->i_size) {
+                CDEBUG(D_INFO, "setting i_size to "LPU64"\n",
+                       iattr.ia_size);
+                       
+                iattr.ia_valid |= ATTR_SIZE;
+                       
+                fsfilt_setattr(obd, res->dentry, oti->oti_handle,
+                               &iattr, 0);
         }
+        up(&inode->i_sem);
 
         if (time_after(jiffies, now + 15 * HZ))
                 CERROR("slow direct_io %lus\n", (jiffies - now) / HZ);
 
         rc = filter_finish_transno(exp, oti, rc);
+
         err = fsfilt_commit(obd, inode, oti->oti_handle, obd_sync_filter);
         if (err)
                 rc = err;
+
         if (obd_sync_filter)
                 LASSERT(oti->oti_transno <= obd->obd_last_committed);
+
         if (time_after(jiffies, now + 15 * HZ))
                 CERROR("slow commitrw commit %lus\n", (jiffies - now) / HZ);
 
index e31a39b..5d26f00 100644 (file)
@@ -12,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index c8961b1..52662b9 100644 (file)
@@ -2963,69 +2963,69 @@ int osc_cleanup(struct obd_device *obd, int flags)
 
 
 struct obd_ops osc_obd_ops = {
-        o_owner:        THIS_MODULE,
-        o_setup:        osc_setup,
-        o_cleanup:      osc_cleanup,
-        o_connect:      osc_connect,
-        o_disconnect:   osc_disconnect,
-        o_statfs:       osc_statfs,
-        o_packmd:       osc_packmd,
-        o_unpackmd:     osc_unpackmd,
-        o_create:       osc_create,
-        o_destroy:      osc_destroy,
-        o_getattr:      osc_getattr,
-        o_getattr_async:osc_getattr_async,
-        o_setattr:      osc_setattr,
-        o_brw:          osc_brw,
-        o_brw_async:    osc_brw_async,
-        .o_prep_async_page =            osc_prep_async_page,
-        .o_queue_async_io =             osc_queue_async_io,
-        .o_set_async_flags =            osc_set_async_flags,
-        .o_queue_group_io =             osc_queue_group_io,
-        .o_trigger_group_io =           osc_trigger_group_io,
-        .o_teardown_async_page =        osc_teardown_async_page,
-        o_punch:        osc_punch,
-        o_sync:         osc_sync,
-        o_enqueue:      osc_enqueue,
-        o_match:        osc_match,
-        o_change_cbdata:osc_change_cbdata,
-        o_cancel:       osc_cancel,
-        o_cancel_unused:osc_cancel_unused,
-        o_iocontrol:    osc_iocontrol,
-        o_get_info:     osc_get_info,
-        o_set_info:     osc_set_info,
-        o_import_event: osc_import_event,
-        o_llog_init:    osc_llog_init,
-        o_llog_finish:  osc_llog_finish,
+        .o_owner                = THIS_MODULE,
+        .o_setup                = osc_setup,
+        .o_cleanup              = osc_cleanup,
+        .o_connect              = osc_connect,
+        .o_disconnect           = osc_disconnect,
+        .o_statfs               = osc_statfs,
+        .o_packmd               = osc_packmd,
+        .o_unpackmd             = osc_unpackmd,
+        .o_create               = osc_create,
+        .o_destroy              = osc_destroy,
+        .o_getattr              = osc_getattr,
+        .o_getattr_async        = osc_getattr_async,
+        .o_setattr              = osc_setattr,
+        .o_brw                  = osc_brw,
+        .o_brw_async            = osc_brw_async,
+        .o_prep_async_page      = osc_prep_async_page,
+        .o_queue_async_io       = osc_queue_async_io,
+        .o_set_async_flags      = osc_set_async_flags,
+        .o_queue_group_io       = osc_queue_group_io,
+        .o_trigger_group_io     = osc_trigger_group_io,
+        .o_teardown_async_page  = osc_teardown_async_page,
+        .o_punch                = osc_punch,
+        .o_sync                 = osc_sync,
+        .o_enqueue              = osc_enqueue,
+        .o_match                = osc_match,
+        .o_change_cbdata        = osc_change_cbdata,
+        .o_cancel               = osc_cancel,
+        .o_cancel_unused        = osc_cancel_unused,
+        .o_iocontrol            = osc_iocontrol,
+        .o_get_info             = osc_get_info,
+        .o_set_info             = osc_set_info,
+        .o_import_event         = osc_import_event,
+        .o_llog_init            = osc_llog_init,
+        .o_llog_finish          = osc_llog_finish,
 };
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 struct obd_ops sanosc_obd_ops = {
-        o_owner:        THIS_MODULE,
-        o_cleanup:      client_obd_cleanup,
-        o_connect:      osc_connect,
-        o_disconnect:   client_disconnect_export,
-        o_statfs:       osc_statfs,
-        o_packmd:       osc_packmd,
-        o_unpackmd:     osc_unpackmd,
-        o_create:       osc_real_create,
-        o_destroy:      osc_destroy,
-        o_getattr:      osc_getattr,
-        o_getattr_async:osc_getattr_async,
-        o_setattr:      osc_setattr,
-        o_setup:        client_sanobd_setup,
-        o_brw:          sanosc_brw,
-        o_punch:        osc_punch,
-        o_sync:         osc_sync,
-        o_enqueue:      osc_enqueue,
-        o_match:        osc_match,
-        o_change_cbdata:osc_change_cbdata,
-        o_cancel:       osc_cancel,
-        o_cancel_unused:osc_cancel_unused,
-        o_iocontrol:    osc_iocontrol,
-        o_import_event: osc_import_event,
-        o_llog_init:    osc_llog_init,
-        o_llog_finish:  osc_llog_finish,
+        .o_owner                = THIS_MODULE,
+        .o_cleanup              = client_obd_cleanup,
+        .o_connect              = osc_connect,
+        .o_disconnect           = client_disconnect_export,
+        .o_statfs               = osc_statfs,
+        .o_packmd               = osc_packmd,
+        .o_unpackmd             = osc_unpackmd,
+        .o_create               = osc_real_create,
+        .o_destroy              = osc_destroy,
+        .o_getattr              = osc_getattr,
+        .o_getattr_async        = osc_getattr_async,
+        .o_setattr              = osc_setattr,
+        .o_setup                = client_sanobd_setup,
+        .o_brw                  = sanosc_brw,
+        .o_punch                = osc_punch,
+        .o_sync                 = osc_sync,
+        .o_enqueue              = osc_enqueue,
+        .o_match                = osc_match,
+        .o_change_cbdata        = osc_change_cbdata,
+        .o_cancel               = osc_cancel,
+        .o_cancel_unused        = osc_cancel_unused,
+        .o_iocontrol            = osc_iocontrol,
+        .o_import_event         = osc_import_event,
+        .o_llog_init            = osc_llog_init,
+        .o_llog_finish          = osc_llog_finish,
 };
 #endif
 
index e31a39b..5d26f00 100644 (file)
@@ -12,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 6893335..37e7583 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulefs_DATA = ost$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(ost-objs:%.o=%.c)
index f1c5e45..5d8b535 100644 (file)
@@ -1203,9 +1203,9 @@ static int ost_cleanup(struct obd_device *obd, int flags)
 
 /* use obd ops to offer management infrastructure */
 static struct obd_ops ost_obd_ops = {
-        o_owner:        THIS_MODULE,
-        o_setup:        ost_setup,
-        o_cleanup:      ost_cleanup,
+        .o_owner        = THIS_MODULE,
+        .o_setup        = ost_setup,
+        .o_cleanup      = ost_cleanup,
 };
 
 static int __init ost_init(void)
index bd3d9dd..f30d862 100644 (file)
@@ -1,9 +1,11 @@
 Kernelenv
 Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
 aclocal.m4
 autom4te.cache
 config.log
 config.status
 configure
 .*.cmd
+.depend
diff --git a/lustre/portals/Makefile.am b/lustre/portals/Makefile.am
deleted file mode 100644 (file)
index 083edfe..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) 2001  Cluster File Systems, Inc.
-#
-# This code is issued under the GNU General Public License.
-# See the file COPYING in this distribution
-
-EXTRA_DIST = archdep.m4 build.m4 include 
-
-SUBDIRS = portals
-DIST_SUBDIRS =
-
-if LIBLUSTRE
-SUBDIRS += unals
-else
-DIST_SUBDIRS += unals
-endif
-
-if MODULES
-SUBDIRS += libcfs
-if CRAY_PORTALS
-DIST_SUBDIRS += knals router
-else
-SUBDIRS += knals router
-endif
-SUBDIRS += tests
-else
-DIST_SUBDIRS += libcfs knals router tests
-endif
-
-if DOC
-SUBDIRS += doc
-else
-DIST_SUBDIRS += doc
-endif
-
-if UTILS
-SUBDIRS += utils
-else
-DIST_SUBDIRS += utils
-endif
-
-DIST_SUBDIRS += $(SUBDIRS)
diff --git a/lustre/portals/Makefile.in b/lustre/portals/Makefile.in
new file mode 100644 (file)
index 0000000..455eaf4
--- /dev/null
@@ -0,0 +1,13 @@
+ifeq (@MODULES_TRUE@,)
+
+subdir-m += libcfs
+ifeq (@CRAY_PORTALS_FALSE@,)
+subdir-m += portals
+subdir-m += knals
+subdir-m += router
+subdir-m += tests
+endif # CRAY_PORTALS_FALSE
+
+endif # MODULES
+
+@INCLUDE_RULES@
index 62cd441..182a485 100644 (file)
@@ -1,7 +1,7 @@
 # -------- we can't build modules unless srcdir = builddir
 if test x$enable_modules != xno ; then
-AC_CHECK_FILE([Makefile.am],[],
-       [AC_ERROR([At this time, Lustre does not support building kernel modules with srcdir != buildir.])])
+AC_CHECK_FILE([autoMakefile.am],[],
+       [AC_MSG_ERROR([At this time, Lustre does not support building kernel modules with srcdir != buildir.])])
 fi
 
 # -------- in kernel compilation? (2.5 only) -------------
@@ -48,6 +48,24 @@ if test x$enable_inkernel = xyes ; then
         ln -s `pwd` $LINUX/fs/lustre
 fi
 
+# -------- check for .confg --------
+AC_ARG_WITH([linux-config],
+       [AC_HELP_STRING([--with-linux-config=path],
+                       [set path to Linux .conf (default=\$LINUX/.config)])],
+       [LINUX_CONFIG=$with_linux_config],
+       [LINUX_CONFIG=$LINUX/.config])
+AC_SUBST(LINUX_CONFIG)
+
+AC_CHECK_FILE([/boot/kernel.h],
+       [KERNEL_SOURCE_HEADER='/boot/kernel.h'],
+       [AC_CHECK_FILE([/var/adm/running-kernel.h]),
+               [KERNEL_SOURCE_HEADER='/var/adm/running-kernel.h']])
+
+AC_ARG_WITH([kernel-source-header],
+       AC_HELP_STRING([--with-kernel-source-header=path],
+                       [Use a different kernel version header.  Consult README.kernel-source for details.]),
+       [KERNEL_SOURCE_HEADER=$with_kernel_source_header])
+
 #  --------------------
 ARCH_UM=
 UML_CFLAGS=
@@ -62,7 +80,7 @@ if test x$enable_modules != xno ; then
                else
                        AC_MSG_RESULT([no (asm doesn't point at asm-um)])
                fi
-       else 
+       else
                AC_MSG_RESULT([no (asm-um missing)])
        fi
 fi
@@ -70,14 +88,15 @@ AC_SUBST(ARCH_UM)
 AC_SUBST(UML_CFLAGS)
 # --------- Linux 25 ------------------
 
-AC_MSG_CHECKING([if you are running linux 2.5])
-if test -e $LINUX/include/linux/namei.h ; then
-        linux25="yes"
-       KMODEXT=".ko"
-else
-       KMODEXT=".o"
-        linux25="no"
-fi
+AC_CHECK_FILE([$LINUX/include/linux/namei.h],
+       [
+               linux25="yes"
+               KMODEXT=".ko"
+       ],[
+               KMODEXT=".o"
+               linux25="no"
+       ])
+AC_MSG_CHECKING([if you are using Linux 2.6])
 AC_MSG_RESULT([$linux25])
 AM_CONDITIONAL(LINUX25, test x$linux25 = xyes)
 AC_SUBST(KMODEXT)
@@ -98,45 +117,115 @@ AC_SUBST(LLCFLAGS)
 if test x$enable_ldiskfs = xyes ; then
        AC_DEFINE(CONFIG_LDISKFS_FS_MODULE, 1, [build ldiskfs as a module])
        AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [enable extended attributes for ldiskfs])
-       AC_DEFINE(CONFIG_LDISKFS_POSIX_ACL, 1, [enable posix acls])
+       AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [enable posix acls])
        AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [enable fs security])
 fi
 
-EXTRA_KCFLAGS="-g -I$PWD/portals/include -I$PWD/include $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE"
+EXTRA_KCFLAGS="-g $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE -I$PWD/portals/include -I$PWD/include"
 
-# ----------- make dep run? ------------------
+# these are like AC_TRY_COMPILE, but try to build modules against the
+# kernel, inside the kernel-tests directory
 
-if test x$enable_modules != xno ; then
-       AC_MSG_CHECKING([if make dep has been run in kernel source (host $host_cpu)])
-       if test -f $LINUX/include/linux/config.h ; then
-               AC_MSG_RESULT([yes])
-       else
-               AC_MSG_RESULT([no])
-               AC_MSG_ERROR([** cannot find $LINUX/include/linux/config.h. Run make dep in $LINUX.])
-       fi
-fi
+AC_DEFUN([LUSTRE_MODULE_CONFTEST],
+[cat >conftest.c <<_ACEOF
+$1
+_ACEOF
+])
+
+AC_DEFUN([LUSTRE_MODULE_COMPILE_IFELSE],
+[m4_ifvaln([$1], [LUSTRE_MODULE_CONFTEST([$1])])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.ko
+AS_IF([AC_TRY_COMMAND(cp conftest.c kernel-tests && make [$2] -f $PWD/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX EXTRA_CFLAGS="$EXTRA_KCFLAGS" $ARCH_UM SUBDIRS=$PWD/kernel-tests) >/dev/null && AC_TRY_COMMAND([$3])],
+       [$4],
+       [_AC_MSG_LOG_CONFTEST
+m4_ifvaln([$5],[$5])dnl])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.mod.o kernel-tests/conftest.ko m4_ifval([$1], [kernel-tests/conftest.c conftest.c])[]dnl
+])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_COMPILE],
+[LUSTRE_MODULE_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[$1]], [[$2]])],
+       [modules],
+       [test -s kernel-tests/conftest.o],
+       [$3], [$4])])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_MAKE],
+[LUSTRE_MODULE_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4], [$5], [$6])])
 
 # ------------ include paths ------------------
 
 if test x$enable_modules != xno ; then
-       # ------------ autoconf.h ------------------
-       AC_MSG_CHECKING([if autoconf.h is in kernel source])
-       if test -f $LINUX/include/linux/autoconf.h ; then
-               AC_MSG_RESULT(yes)
-       else
-               AC_MSG_RESULT(no)
-               AC_MSG_ERROR([** cannot find $LINUX/include/linux/autoconf.h. Run make config in $LINUX.])
+       # ------------ .config exists ----------------
+       AC_CHECK_FILE([$LINUX_CONFIG],[],
+               [AC_MSG_ERROR([Kernel config could not be found.  If you are building from a kernel-source rpm consult README.kernel-source])])
+
+       # ----------- make dep run? ------------------
+       AC_CHECK_FILES([$LINUX/include/linux/autoconf.h
+                       $LINUX/include/linux/version.h
+                       $LINUX/include/linux/config.h],[],
+               [AC_MSG_ERROR([Run make config in $LINUX.])])
+
+       # ------------ rhconfig.h includes runtime-generated bits --
+       # red hat kernel-source checks
+
+       # we know this exists after the check above.  if the user
+       # tarred up the tree and ran make dep etc. in it, then
+       # version.h gets overwritten with a standard linux one.
+
+       if grep rhconfig $LINUX/include/linux/version.h >/dev/null ; then
+               # This is a clean kernel-source tree, we need to
+               # enable extensive workarounds to get this to build
+               # modules
+               AC_CHECK_FILE([$KERNEL_SOURCE_HEADER],
+                       [if test $KERNEL_SOURCE_HEADER = '/boot/kernel.h' ; then
+                               AC_MSG_WARN([Using /boot/kernel.h from RUNNING kernel.])
+                               AC_MSG_WARN([If this is not what you want, use --with-kernel-source-header.])
+                               AC_MSG_WARN([Consult README.kernel-source for details.])
+                       fi],
+                       [AC_MSG_ERROR([$KERNEL_SOURCE_HEADER not found.  Consult README.kernel-source for details.])])
+               EXTRA_KCFLAGS="-include $KERNEL_SOURCE_HEADER $EXTRA_KCFLAGS"
        fi
 
+       # --- check that we can build modules at all
+       AC_MSG_CHECKING([that modules can be built])
+       LUSTRE_MODULE_TRY_COMPILE([],[],
+               [
+                       AC_MSG_RESULT([yes])
+               ],[
+                       AC_MSG_RESULT([no])
+                       AC_MSG_WARN([Consult config.log for details.])
+                       AC_MSG_WARN([If you are trying to build with a kernel-source rpm, consult README.kernel-source])
+                       AC_MSG_ERROR([Kernel modules could not be built.])
+               ])
+
        # ------------ LINUXRELEASE and moduledir ------------------
        AC_MSG_CHECKING([for Linux release])
-
-       # this is bogus, as it doesn't work against kernel-source rpms  
-       dnl We need to rid ourselves of the nasty [ ] quotes.
-       changequote(, )
-       dnl Get release from version.h
-       LINUXRELEASE="`sed -ne 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_-]*\).*/\1/p' $LINUX/include/linux/version.h`"
-       changequote([, ])
+       rm -f kernel-tests/conftest.i
+       LINUXRELEASE=
+       if test $linux25 = 'yes' ; then
+               makerule="$PWD/kernel-tests"
+       else
+               makerule="_dir_$PWD/kernel-tests"
+       fi
+       LUSTRE_MODULE_TRY_MAKE(
+               [#include <linux/version.h>],
+               [LINUXRELEASE=UTS_RELEASE],
+               [$makerule LUSTRE_KERNEL_TEST=conftest.i],
+               [test -s kernel-tests/conftest.i],
+               [
+                       # LINUXRELEASE="UTS_RELEASE"
+                       eval $(grep LINUXRELEASE kernel-tests/conftest.i)
+               ],[
+                       AC_MSG_RESULT([unknown])
+                       AC_MSG_ERROR([Could not preprocess test program.  Consult config.log for details.])
+               ])
+       rm -f kernel-tests/conftest.i
+       if test x$LINUXRELEASE = x ; then
+               AC_MSG_RESULT([unknown])
+               AC_MSG_ERROR([Could not determine Linux release version from linux/version.h.])
+       fi
+       AC_MSG_RESULT([$LINUXRELEASE])
+       AC_SUBST(LINUXRELEASE)
 
        moduledir='$(libdir)/modules/'$LINUXRELEASE/kernel
        AC_SUBST(moduledir)
@@ -144,18 +233,9 @@ if test x$enable_modules != xno ; then
        modulefsdir='$(moduledir)/fs/$(PACKAGE)'
        AC_SUBST(modulefsdir)
 
-       AC_MSG_RESULT($LINUXRELEASE)
-       AC_SUBST(LINUXRELEASE)
-
        # ------------ RELEASE --------------------------------
-       AC_MSG_CHECKING([lustre release])
-  
-       dnl We need to rid ourselves of the nasty [ ] quotes.
-       changequote(, )
-       dnl Get release from version.h
-       RELEASE="`sed -ne 's/-/_/g' -e 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_]*\).*/\1/p' $LINUX/include/linux/version.h`_`date +%Y%m%d%H%M`"
-       changequote([, ])
-
+       AC_MSG_CHECKING([for Lustre release])
+       RELEASE="${LINUXRELEASE}_`date +%Y%m%d%H%M`"
        AC_MSG_RESULT($RELEASE)
        AC_SUBST(RELEASE)
 fi
@@ -226,6 +306,7 @@ else
 fi
 AC_SUBST(QSWCPPFLAGS)
 AC_SUBST(QSWNAL)
+AM_CONDITIONAL(BUILD_QSWNAL, test x$QSWNAL = "xqswnal")
 
 AC_MSG_CHECKING([if gm support was requested])
 AC_ARG_WITH([gm],
@@ -256,7 +337,7 @@ AC_ARG_WITH([gm],
        ])
 AC_SUBST(GMCPPFLAGS)
 AC_SUBST(GMNAL)
-
+AM_CONDITIONAL(BUILD_GMNAL, test x$GMNAL = "xgmnal")
 
 #fixme: where are the default IB includes?
 default_ib_include_dir=/usr/local/ib/include
@@ -291,7 +372,7 @@ AC_ARG_WITH([ib],
        ])
 AC_SUBST(IBNAL)
 AC_SUBST(IBCPPFLAGS)
-
+AM_CONDITIONAL(BUILD_IBNAL, test x$IBNAL = "xibnal")
 
 def_scamac=/opt/scali/include
 AC_MSG_CHECKING([if ScaMAC support was requested])
@@ -323,34 +404,12 @@ AC_ARG_WITH([scamac],
        ])
 AC_SUBST(SCIMACCPPFLAGS)
 AC_SUBST(SCIMACNAL)
+AM_CONDITIONAL(BUILD_SCIMACNAL, test x$SCIMACNAL = "xscimacnal")
 # if test "$with_scamac" != no -a -f ${with_scamac}/scamac.h; then
 
 AC_SUBST(MOD_LINK)
 AC_SUBST(LINUX25)
 
-# these are like AC_TRY_COMPILE, but try to build modules against the
-# kernel, inside the kernel-tests directory
-
-AC_DEFUN([LUSTRE_MODULE_CONFTEST],
-[cat >conftest.c <<_ACEOF
-$1
-_ACEOF
-])
-
-AC_DEFUN([LUSTRE_MODULE_COMPILE_IFELSE],
-[m4_ifvaln([$1], [LUSTRE_MODULE_CONFTEST([$1])])dnl
-rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.ko
-AS_IF([_AC_EVAL_STDERR([cp conftest.c kernel-tests && make modules -C $LINUX $ARCH_UM SUBDIRS=$PWD/kernel-tests >/dev/null]) &&
-       AC_TRY_COMMAND([test -s kernel-tests/conftest.o])],
-       [$2],
-       [_AC_MSG_LOG_CONFTEST
-m4_ifvaln([$3],[$3])dnl])dnl
-rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.mod.o kernel-tests/conftest.ko m4_ifval([$1], [kernel-tests/conftest.c conftest.c])[]dnl
-])
-
-AC_DEFUN([LUSTRE_MODULE_TRY_COMPILE],
-[LUSTRE_MODULE_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])])
-
 # ---------- Red Hat 2.4.18 has iobuf->dovary --------------
 # But other kernels don't
 
@@ -452,6 +511,22 @@ if test x$enable_modules != xno ; then
                        AC_MSG_RESULT([no])
                ])
 
+       # ------------ preempt -----------------------
+       AC_MSG_CHECKING([if preempt is enabled])
+       LUSTRE_MODULE_TRY_COMPILE(
+               [
+                       #include <linux/config.h>
+               ],[
+                       #ifndef CONFIG_PREEMPT
+                       #error CONFIG_PREEMPT is not #defined
+                       #endif
+               ],[
+                       AC_MSG_RESULT([yes])
+                       AC_MSG_ERROR([Lustre does not support kernels with preempt enabled.])
+               ],[
+                       AC_MSG_RESULT([no])
+               ])
+
        if test $BACKINGFS = 'ext3' ; then
                # --- Check that ext3 and ext3 xattr are enabled in the kernel
                AC_MSG_CHECKING([that ext3 is enabled in the kernel])
diff --git a/lustre/portals/autoMakefile.am b/lustre/portals/autoMakefile.am
new file mode 100644 (file)
index 0000000..bd57e6e
--- /dev/null
@@ -0,0 +1,8 @@
+# Copyright (C) 2001  Cluster File Systems, Inc.
+#
+# This code is issued under the GNU General Public License.
+# See the file COPYING in this distribution
+
+EXTRA_DIST = archdep.m4 build.m4 include 
+
+SUBDIRS = portals libcfs knals unals router tests doc utils
index 8ccb1d3..93a370f 100644 (file)
@@ -1,5 +1,9 @@
 # ----------  other tests and settings ---------
 
+AC_CHECK_TYPE([spinlock_t],
+       [AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])],
+       [],
+       [#include <linux/spinlock.h>])
 
 # ---------  unsigned long long sane? -------
 
index 4803a9b..34c263b 100644 (file)
@@ -40,6 +40,9 @@
 # define RECALC_SIGPENDING         recalc_sigpending()
 # define CURRENT_SECONDS           CURRENT_TIME
 
+# define kernel_text_address(addr) is_kernel_text_address(addr)
+extern int is_kernel_text_address(unsigned long addr);
+
 #else /* 2.4.x */
 
 # define SIGNAL_MASK_LOCK(task, flags)                                  \
@@ -51,6 +54,9 @@
 # define RECALC_SIGPENDING         recalc_sigpending(current)
 # define CURRENT_SECONDS           CURRENT_TIME
 
+# define kernel_text_address(addr) is_kernel_text_address(addr)
+extern int is_kernel_text_address(unsigned long addr);
+
 #endif
 
 #if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
index 06c8fdb..f5fd0b0 100644 (file)
@@ -1,3 +1,5 @@
 Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
 .*.cmd
+.depend
diff --git a/lustre/portals/knals/Makefile.in b/lustre/portals/knals/Makefile.in
new file mode 100644 (file)
index 0000000..8b65144
--- /dev/null
@@ -0,0 +1,11 @@
+ifeq (@MODULES_TRUE@,)
+
+@BUILD_GMNAL_TRUE@subdir-m += gmnal
+@BUILD_IBNAL_TRUE@subdir-m += ibnal
+@BUILD_QSWNAL_TRUE@subdir-m += qswnal
+@BUILD_SCIMACNAL_TRUE@subdir-m += scimacnal
+subdir-m += socknal
+
+endif # MODULES_TRUE
+
+@INCLUDE_RULES@
diff --git a/lustre/portals/knals/autoMakefile.am b/lustre/portals/knals/autoMakefile.am
new file mode 100644 (file)
index 0000000..60318ee
--- /dev/null
@@ -0,0 +1,6 @@
+# Copyright (C) 2001  Cluster File Systems, Inc.
+#
+# This code is issued under the GNU General Public License.
+# See the file COPYING in this distribution
+
+SUBDIRS = gmnal ibnal qswnal scimacnal socknal
index 4c4a6ed..642e2e6 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.cmd
 .*.flags
 .tmp_versions
+.depend
index 3892fb7..89ea361 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kgmnal
 kgmnal-objs := gmnal_api.o gmnal_cb.o gmnal_comm.o gmnal_utils.o gmnal_module.o
 
-EXTRA_CFLAGS := @GMCPPFLAGS@
+EXTRA_PRE_CFLAGS := @GMCPPFLAGS@
 
 @INCLUDE_RULES@
index 9e92c69..d8b9edb 100644 (file)
@@ -3,7 +3,13 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if BUILD_GMNAL
+if !CRAY_PORTALS
 modulenet_DATA = kgmnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kgmnal-objs:%.o=%.c) gmnal.h
index 409d56d..48b17e9 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 .*.flags
 .*.cmd
 .tmp_versions
+.depend
index 2b29307..e180b3e 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kibnal
 kibnal-objs := ibnal.o ibnal_cb.o
 
-EXTRA_CFLAGS := @IBCPPFLAGS@
+EXTRA_PRE_CFLAGS := @IBCPPFLAGS@
 
 @INCLUDE_RULES@
index 46bfc0d..ffe084c 100644 (file)
@@ -1,4 +1,10 @@
+if MODULES
+if !CRAY_PORTALS
+if BUILD_IBNAL
 modulenet_DATA = kibnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kibnal-objs:%.o=%.c) ibnal.h
index 17b1778..60d09c8 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kqswnal
 kqswnal-objs := qswnal.o qswnal_cb.o
 
-EXTRA_CFLAGS := @QSWCPPFLAGS@ -I /usr/include
+EXTRA_PRE_CFLAGS := @QSWCPPFLAGS@ -I/usr/include
 
 @INCLUDE_RULES@
index c601465..b5b2e07 100644 (file)
@@ -3,7 +3,13 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
+if BUILD_QSWNAL
 modulenet_DATA = kqswnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kqswnal-objs:%.o=%.c) qswnal.h
index 19ee350..c7eb4ac 100644 (file)
@@ -1,6 +1,6 @@
 MODULES := kscimacnal
 kscimacnal-objs := scimacnal.o scimacnal_cb.o
 
-EXTRA_CFLAGS += @SCIMACCPPFLAGS@
+EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@
 
 @INCLUDE_RULES@
index 4580d2b..47433cd 100644 (file)
@@ -1,7 +1,13 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
+if BUILD_SCIMACNAL
 modulenet_DATA = kscimacnal$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(ksimacnal-objs:%.o=%.c) scimacnal.h
index 9377751..633b455 100644 (file)
@@ -3,6 +3,6 @@ ksocknal-objs := socknal.o socknal_cb.o
 
 # If you don't build with -O2, your modules won't insert, becahse htonl is
 # just special that way.
-EXTRA_CFLAGS := -O2
+EXTRA_POST_CFLAGS := -O2
 
 @INCLUDE_RULES@
index 0923459..070b649 100644 (file)
@@ -3,7 +3,11 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
 modulenet_DATA = ksocknal$(KMODEXT)
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(ksocknal-objs:%.o=%.c) socknal.h
index 3a771f9..c6f0aa4 100644 (file)
@@ -8,3 +8,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 59576b1..192c3ef 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
 modulenet_DATA := libcfs$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(libcfs-objs:%.o=%.c)
index a444e9e..aaf5827 100644 (file)
@@ -45,6 +45,7 @@
 #include <asm/uaccess.h>
 #include <asm/segment.h>
 #include <linux/miscdevice.h>
+#include <linux/version.h>
 
 # define DEBUG_SUBSYSTEM S_PORTALS
 
 #include <linux/portals_compat25.h>
 #include <linux/libcfs.h>
 
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#include <linux/kallsyms.h>
+#endif
+
 unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
                                             S_GMNAL | S_IBNAL);
 EXPORT_SYMBOL(portal_subsystem_debug);
@@ -985,8 +990,6 @@ spinlock_t stack_backtrace_lock = SPIN_LOCK_UNLOCKED;
 
 #if defined(__arch_um__)
 
-extern int is_kernel_text_address(unsigned long addr);
-
 char *portals_debug_dumpstack(void)
 {
         asm("int $3");
@@ -995,33 +998,45 @@ char *portals_debug_dumpstack(void)
 
 #elif defined(__i386__)
 
-extern int is_kernel_text_address(unsigned long addr);
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 extern int lookup_symbol(unsigned long address, char *buf, int buflen);
+const char *kallsyms_lookup(unsigned long addr,
+                            unsigned long *symbolsize,
+                            unsigned long *offset,
+                            char **modname, char *namebuf);
+{
+        int rc = lookup_symbol(addr, namebuf, 128);
+        if (rc == -ENOSYS)
+                return NULL;
+        return namebuf;
+}
+#endif
 
 char *portals_debug_dumpstack(void)
 {
-        unsigned long esp = current->thread.esp;
+        unsigned long esp = current->thread.esp, addr;
         unsigned long *stack = (unsigned long *)&esp;
+        char *buf = stack_backtrace, *pbuf = buf;
         int size;
-        unsigned long addr;
-        char *buf = stack_backtrace;
-        char *pbuf = buf;
-        static char buffer[512];
-        int rc = 0;
 
         /* User space on another CPU? */
-        if ((esp ^ (unsigned long)current) & (PAGE_MASK<<1)){
+        if ((esp ^ (unsigned long)current) & (PAGE_MASK << 1)){
                 buf[0] = '\0';
                 goto out;
         }
 
         size = sprintf(pbuf, " Call Trace: ");
         pbuf += size;
-        while (((long) stack & (THREAD_SIZE-1)) != 0) {
+        while (((long) stack & (THREAD_SIZE - 1)) != 0) {
                 addr = *stack++;
-                if (is_kernel_text_address(addr)) {
-                        rc = lookup_symbol(addr, buffer, 512);
-                        if (rc == -ENOSYS) {
+                if (kernel_text_address(addr)) {
+                        const char *sym_name;
+                        char *modname, buffer[128];
+                        unsigned long junk, offset;
+
+                        sym_name = kallsyms_lookup(addr, &junk, &offset,
+                                                   &modname, buffer);
+                        if (sym_name == NULL) {
                                 if (buf + LUSTRE_TRACE_SIZE <= pbuf + 12)
                                         break;
                                 size = sprintf(pbuf, "[<%08lx>] ", addr);
@@ -1031,7 +1046,7 @@ char *portals_debug_dumpstack(void)
                                     <= pbuf + strlen(buffer) + 28 + 1)
                                         break;
                                 size = sprintf(pbuf, "([<%08lx>] %s (0x%p)) ",
-                                               addr, buffer, stack-1);
+                                               addr, buffer, stack - 1);
                         }
                         pbuf += size;
                 }
index 702fcbe..5ed596b 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index b4743fe..bf7a107 100644 (file)
@@ -7,6 +7,8 @@ my_sources = api-eq.c api-init.c api-me.c api-errno.c api-ni.c api-wrap.c \
                lib-dispatch.c lib-init.c lib-me.c lib-msg.c lib-eq.c \
                lib-md.c lib-move.c lib-ni.c lib-pid.c
 
+if !CRAY_PORTALS
+
 if LIBLUSTRE
 noinst_LIBRARIES= libportals.a
 libportals_a_SOURCES= $(my_sources)
@@ -16,7 +18,9 @@ endif
 
 if MODULES
 modulenet_DATA = portals$(KMODEXT)
-endif
+endif # MODULES
+
+endif # CRAY_PORTALS
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(portals-objs:%.o=%.c)
index 702fcbe..5ed596b 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 5249659..fa11e8c 100644 (file)
@@ -3,7 +3,11 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
 modulenet_DATA = kptlrouter$(KMODEXT)
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(kptlrouter-objs:%.o=%.c) router.h
index 13c1032..e034130 100644 (file)
@@ -7,3 +7,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index a1ff7e8..5f81b93 100644 (file)
@@ -3,9 +3,14 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if MODULES
+if !CRAY_PORTALS
+if TESTS
 noinst_DATA := pingsrv$(KMODEXT) pingcli$(KMODEXT)
 noinst_DATA += spingsrv$(KMODEXT) spingcli$(KMODEXT)
+endif
+endif
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c pingsrv.c pingcli.c spingsrv.c spingcli.c
-DIST_SOURCES = $(pingsrc-objs:%.o=%.c) $(pingcli:%.o=%.c) \
-       $(spingsrv:%.o=%.c) $(spingcli:%.o=%.c) ping.h
+DIST_SOURCES = ping_srv.c ping_cli.c sping_srv.c sping_cli.c ping.h
index 0c1ec21..4c842a1 100644 (file)
@@ -1,4 +1,7 @@
+if LIBLUSTRE
 noinst_LIBRARIES = libtcpnal.a
+endif
+
 pkginclude_HEADERS =  pqtimer.h dispatch.h table.h timer.h connection.h ipmap.h bridge.h procbridge.h
 libtcpnal_a_SOURCES = debug.c pqtimer.c select.c table.c pqtimer.h dispatch.h table.h timer.h address.c procapi.c proclib.c connection.c tcpnal.c connection.h
 libtcpnal_a_CPPFLAGS = $(LLCPPFLAGS)
index 426565e..82b4022 100644 (file)
 #include <sys/param.h>
 #include <assert.h>
 
-#include <config.h>
 #ifdef HAVE_LIBREADLINE
 #define        READLINE_LIBRARY
 #include <readline/readline.h>
-#endif
 
 /* completion_matches() is #if 0-ed out in modern glibc */
 #ifndef completion_matches
-#define completion_matches rl_completion_matches
+#  define completion_matches rl_completion_matches
+#endif
 #endif
+
 extern void using_history(void);
 extern void stifle_history(int);
 extern void add_history(char *);
@@ -225,14 +225,15 @@ static char **command_completion(char * text, int start, int end)
     char       * pos;
 
     match_tbl = top_level;
+    
     for (table = find_cmd(rl_line_buffer, match_tbl, &pos);
-        table;
-        table = find_cmd(pos, match_tbl, &pos)) {
+        table; table = find_cmd(pos, match_tbl, &pos)) 
+    {
 
        if (*(pos - 1) == ' ') match_tbl = table->pc_sub_cmd;
     }
 
-    return(completion_matches(text, command_generator));
+    return completion_matches(text, command_generator);
 }
 #endif
 
index 6ccee5e..8d9434e 100644 (file)
@@ -6,3 +6,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index b1efaae..0446dc8 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if !LINUX25
 modulefs_DATA = ptlbd$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(ptlbd-objs:%.o=%.c)
index ccef070..77c0dd8 100644 (file)
@@ -255,10 +255,10 @@ static void ptlbd_request(request_queue_t *q)
 }
 
 static struct block_device_operations ptlbd_ops = {
-        .owner = THIS_MODULE,
-        .open = ptlbd_open,
+        .owner   = THIS_MODULE,
+        .open    = ptlbd_open,
+        .ioctl   = ptlbd_ioctl,
         .release = ptlbd_release,
-        .ioctl = ptlbd_ioctl,
 };
 
 int ptlbd_blk_init(void)
index 2ccf00e..94fc1f2 100644 (file)
@@ -191,11 +191,11 @@ out_req:
 
 
 static struct obd_ops ptlbd_cl_obd_ops = {
-        o_owner:        THIS_MODULE,
-        o_setup:        ptlbd_cl_setup,
-        o_cleanup:      ptlbd_cl_cleanup,
-        o_connect:      ptlbd_cl_connect,
-        o_disconnect:   ptlbd_cl_disconnect,
+        .o_owner        = THIS_MODULE,
+        .o_setup        = ptlbd_cl_setup,
+        .o_cleanup      = ptlbd_cl_cleanup,
+        .o_connect      = ptlbd_cl_connect,
+        .o_disconnect   = ptlbd_cl_disconnect,
 };
 
 static struct lprocfs_vars lprocfs_obd_vars[] = { {0} };
index daa0b3c..f25b811 100644 (file)
@@ -98,11 +98,11 @@ static int ptlbd_sv_cleanup(struct obd_device *obd, int flags)
 }
 
 static struct obd_ops ptlbd_sv_obd_ops = {
-        o_owner:        THIS_MODULE,
-        o_setup:        ptlbd_sv_setup,
-        o_cleanup:      ptlbd_sv_cleanup,
-        o_connect:      class_connect,
-        o_disconnect:   class_disconnect,
+        .o_owner        = THIS_MODULE,
+        .o_setup        = ptlbd_sv_setup,
+        .o_cleanup      = ptlbd_sv_cleanup,
+        .o_connect      = class_connect,
+        .o_disconnect   = class_disconnect,
 };
 
 static struct lprocfs_vars lprocfs_obd_vars[] = { {0} };
index a27fbd9..7496232 100644 (file)
@@ -13,3 +13,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index 3387747..6b27d3e 100644 (file)
@@ -22,6 +22,6 @@ ldlm_%.c: @LUSTRE@/ldlm/ldlm_%.c
 l_lock.c: @LUSTRE@/ldlm/l_lock.c
        ln -sf $< $@
 
-EXTRA_CFLAGS := -I@LUSTRE@/ldlm
+EXTRA_PRE_CFLAGS := -I@LUSTRE@/ldlm
 
 @INCLUDE_RULES@
index 1ed4f29..9bfdbb4 100644 (file)
@@ -27,7 +27,7 @@
 
 #define DEBUG_SUBSYSTEM S_RPC
 #ifndef __KERNEL__
-#include <liblustre.h>
+# include <liblustre.h>
 #endif
 
 #include <linux/obd_support.h>
index a79f89b..9f92230 100755 (executable)
@@ -275,20 +275,34 @@ patch_kernel()
     popd >/dev/null
 }
 
+set_make()
+{
+    MAKE="make -s CC=$CC"
+    if [ "$ARCH" ] ; then
+       MAKE="$MAKE ARCH=$ARCH"
+    fi
+    MAKE_J="$MAKE -j $JOBS"
+}
+
 depend_kernel()
 {
     (( $DEPEND_KERNEL )) || return 0
     # we need to override $CC at make time, since there is no
     # configure
-    MAKE="make -s CC=$CC"
+    set_make
     pushd "$TOPDIR/linux" >/dev/null
     echo "Overriding EXTRAVERSION in kernel..."
     perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${EXTRA_VERSION}${TARGET_CONFIG}/" Makefile
     echo "Making depend in $PWD..."
     $MAKE mrproper || fatal 1 "Error running make mrproper"
     cp "$CONFIG_FILE" .config
-    $MAKE oldconfig_nonint || fatal 1 "Error running make oldconfig"
-    $MAKE -j $JOBS dep || fatal 1 "Error running make dep"
+    if grep -q oldconfig_nonint Makefile ; then
+       OLDCONFIG='oldconfig_nonint'
+    else
+       OLDCONFIG='oldconfig'
+    fi
+    $MAKE $OLDCONFIG || fatal 1 "Error running make oldconfig"
+    $MAKE_J dep || fatal 1 "Error running make dep"
     $MAKE include/linux/version.h || fatal 1 "Error making include/linux/version.h"
 }
 
@@ -297,17 +311,17 @@ build_kernel()
     (( $BUILD_KERNEL )) || return 0
     # we need to override $CC at make time, since there is no
     # configure
-    MAKE="make -s CC=$CC"
+    set_make
     echo "Building kernel in $PWD..."
     case "$TARGET_ARCH" in
        i386 | i586 | i686 | athlon | x86_64)
-           $MAKE -j $JOBS -s bzImage || fatal 1 "Error making bzImage."
+           $MAKE_J bzImage || fatal 1 "Error making bzImage."
            ;;
        *)
-           $MAKE -j $JOBS -s boot || fatal 1 "Error making boot."
+           $MAKE_J boot || fatal 1 "Error making boot."
            ;;
     esac
-    $MAKE -j $JOBS -s modules || fatal 1 "Error building modules."
+    $MAKE_J modules || fatal 1 "Error building modules."
 
     popd >/dev/null
 }
@@ -326,8 +340,9 @@ configure_lustre()
 build_lustre()
 {
     (( $BUILD_LUSTRE )) || return 0
+    set_make
     pushd "$TOPDIR" >/dev/null
-    make -j $JOBS -s || fatal 1 "Error building Lustre."
+    $MAKE_J || fatal 1 "Error building Lustre."
     popd >/dev/null
 }
 
index 0ff57ea..9ae6368 100644 (file)
@@ -105,8 +105,11 @@ Second, per-architecture exclusions (ifarch)
 
 %{expand: %%define kernel_conflicts  ppp <= 2.3.15, pcmcia-cs <= 3.1.20, isdn4k-utils <= 3.0, mount < 2.10r-5, nfs-utils < 0.3.1, cipe < 1.4.5, tux < 2.1.0, kudzu <= 0.92, e2fsprogs < 1.22, initscripts < 5.84, dev < 3.2-7, iptables < 1.2.5-3, bcm5820 < 1.81, nvidia-rh72 <= 1.0, oprofile < 0.4}
 
+%if %{rhbuild}
 %define BOOT_kernel_prereq fileutils, modutils >=  2.4.18
 %define kernel_prereq %{BOOT_kernel_prereq}, initscripts >= 5.83, mkinitrd >= 3.2.6
+%endif
+
 %ifarch ia64
 %define initrd_dir /boot/efi/redhat
 %else
@@ -139,11 +142,13 @@ BuildConflicts: rhbuildsys(DiscFree) < 500Mb
 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
 %endif
 Autoreqprov: no
+%if %{rhbuild}
 Prereq: %{kernel_prereq}
 Conflicts: %{kernel_conflicts}
 
 BuildPreReq: patch >= 2.5.4, bash >= 2.03, sh-utils, gnupg, tar
 BuildPreReq: bzip2, findutils, dev, gzip, m4
+%endif
 
 Vendor: Cluster File Systems, Inc.
 URL: http://www.kernel.org/
@@ -195,8 +200,10 @@ Provides: module-info, kernel = %{version}
 %ifarch %{all_x86} ia64 x86_64
 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
 %endif
+%if %{rhbuild}
 Prereq: %{kernel_prereq}
 Conflicts: %{kernel_conflicts}
+%endif
 
 %description smp
 This package includes a SMP version of the Linux kernel. It is
@@ -212,9 +219,11 @@ Provides: module-info, kernel = %{version}
 %ifarch %{all_x86} ia64 x86_64
 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
 %endif
+%if %{rhbuild}
 Prereq: %{kernel_prereq}
 Conflicts: %{kernel_conflicts}
 Obsoletes: kernel-enterprise <= 2.4.10
+%endif
 
 %description bigmem
 This package includes a kernel that has appropriate configuration options
@@ -224,8 +233,10 @@ enabled for Pentium III machines with 4 Gigabyte of memory or more.
 Summary: The version of the Linux kernel used on installation boot disks.
 Group: System Environment/Kernel
 Provides: kernel = %{version}
+%if %{rhbuild}
 Prereq: %{BOOT_kernel_prereq}
 Conflicts: %{kernel_conflicts}
+%endif
 
 %description BOOT
 This package includes a trimmed down version of the Linux kernel.
@@ -237,8 +248,10 @@ turned off because of the size constraints.
 Summary: The Linux kernel used on installation boot disks for SMP machines.
 Group: System Environment/Kernel
 Provides: kernel = %{version}
+%if %{rhbuild}
 Prereq: %{BOOT_kernel_prereq}
 Conflicts: %{kernel_conflicts}
+%endif
 
 %description BOOTsmp
 This package includes a trimmed down version of the Linux kernel. This
@@ -251,8 +264,10 @@ machines that have trouble coming up to life with the uniprocessor kernel.
 Summary: The Linux Kernel compiled for the Alpha Jensen platform.
 Group: System Environment/Kernel
 Provides: kernel = %{version}
+%if %{rhbuild}
 Prereq: %{kernel_prereq}
 Conflicts: %{kernel_conflicts}
+%endif
 
 %description jensen
 This package includes a kernel that has appropriate configuration
@@ -432,7 +447,12 @@ make -s mrproper -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
 rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs/*
 cp ../kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@*.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
 cp ../kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config
-make -s oldconfig_nonint -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
+if grep -q oldconfig_nonint $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile ; then
+       OLDCONFIG='oldconfig_nonint'
+else
+       OLDCONFIG='oldconfig'
+fi
+make -s $OLDCONFIG -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
 make -s symlinks -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
 make -s include/linux/version.h -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
 
@@ -785,10 +805,10 @@ exit 0
 %defattr(-, root, root)
 %doc lustre/COPYING lustre/BUGS lustre/ChangeLog lustre/README lustre/doc/lustre.pdf
 /sbin/*
-%{_sbindir}/*
-%{_bindir}/*
-%{_libdir}/lustre/python
-%{_sysconfdir}/init.d/lustre
+/usr/sbin/*
+/usr/bin/*
+/usr/lib/lustre/python
+/etc/init.d/lustre
 /usr/include/lustre
 /lib/lib*.a
 
index 9d56fd3..3b277a9 100644 (file)
@@ -3,7 +3,9 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
+if SMFS
 modulefs_DATA = smfs$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(smfs-objs:%.o=%.c) kml_idl.h smfs_internal.h smfs_support.h
index 8cf1953..e5a57a9 100644 (file)
@@ -5,7 +5,9 @@
 
 SUBDIRS = . utils
 
+if SNAPFS
 modulefs_DATA = snapfs$(KMODEXT)
+endif
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 DIST_SOURCES = $(snapfs-objs:%.o=%.c) snapfs_internal.h snapfs_support.h
index 0f3d3fb..1487ee1 100644 (file)
@@ -1,5 +1,8 @@
 # Administration utilities Makefile
 
+if SNAPFS
 noinst_PROGRAMS = snapconf
 snapconf_LDADD := $(LIBREADLINE)  -ltermcap
+endif
+
 snapconf_SOURCES = parser.c snapctl.c snapconf.c parser.h snapctl.h
index a2bbe20..da73223 100644 (file)
@@ -34,7 +34,7 @@
 
 /* completion_matches() is #if 0-ed out in modern glibc */
 #ifndef completion_matches
-#define completion_matches rl_completion_matches
+#  define completion_matches rl_completion_matches
 #endif
 extern void using_history(void);
 extern void stifle_history(int);
@@ -248,18 +248,19 @@ static char * command_generator(const char * text, int state)
 /* probably called by readline */
 static char **command_completion(char * text, int start, int end)
 {
-        command_t         * table;
+        command_t   * table;
         char        * pos;
 
         match_tbl = top_level;
+
         for (table = find_cmd(rl_line_buffer, match_tbl, &pos);
-             table;
-             table = find_cmd(pos, match_tbl, &pos)) {
+             table; table = find_cmd(pos, match_tbl, &pos)) 
+        {
 
                 if (*(pos - 1) == ' ') match_tbl = table->pc_sub_cmd;
         }
 
-        return(completion_matches(text, command_generator));
+        return completion_matches(text, command_generator);
 }
 #endif
 
index c65b932..f313234 100644 (file)
@@ -5,6 +5,7 @@ AM_CFLAGS = $(LLCFLAGS)
 # LDADD := -lreadline -ltermcap # -lefence
 EXTRA_DIST = $(pkgexample_SCRIPTS) $(noinst_SCRIPTS) $(noinst_DATA) \
        sanity.sh rundbench
+if TESTS
 pkgexample_SCRIPTS = llmount.sh llmountcleanup.sh llecho.sh llechocleanup.sh
 pkgexample_SCRIPTS += local.sh echo.sh uml.sh lov.sh
 noinst_DATA =
@@ -21,6 +22,7 @@ noinst_PROGRAMS += small_write multiop sleeptest ll_sparseness_verify
 noinst_PROGRAMS += ll_sparseness_write mrename ll_dirstripe_verify
 # noinst_PROGRAMS += ldaptest
 bin_PROGRAMS = mcreate munlink mkdirmany iopentest1 iopentest2
+endif # TESTS
 
 # ldaptest_SOURCES = ldaptest.c
 tchmod_SOURCES = tchmod.c
index fa42e2b..9faf8e2 100644 (file)
@@ -46,7 +46,7 @@ int main( int argc, char **argv)
                fprintf(stderr, "%s: created device other than requested: (%d,%d) instead of (%d,%d)\n", prog, major(st.st_rdev),minor(st.st_rdev),major(device),minor(device));
                return 4;
        }
-       if ( ! (st.st_mode | S_IFBLK) ) {
+       if (!S_ISCHR(st.st_mode)) {
                fprintf(stderr, "%s: created device of different type. Requested block device, got mode %o\n", prog, st.st_mode);
                return 5;
        }
@@ -76,7 +76,7 @@ int main( int argc, char **argv)
                fprintf(stderr, "%s: created device other than requested: (%d,%d) instead of (%d,%d)\n", prog, major(st.st_rdev),minor(st.st_rdev),major(device),minor(device));
                return 9;
        }
-       if ( ! (st.st_mode | S_IFCHR) ) {
+       if (!S_ISCHR(st.st_mode)) {
                fprintf(stderr, "%s: created device of different type. Requested char device, got mode %o\n", prog, st.st_mode);
                return 10;
        }
index 13989f2..59147ac 100644 (file)
@@ -16,7 +16,6 @@ lload
 wirecheck
 lfs
 llmount
-lconf
 mount.lustre
 wiretest
 .*.cmd
index 162b830..1f7a8b5 100644 (file)
@@ -6,9 +6,7 @@ AM_CFLAGS=$(LLCFLAGS)
 AM_CPPFLAGS=$(LLCPPFLAGS)
 AM_LDFLAGS := -L$(top_builddir)/portals/utils
 
-lctl_LDADD := $(LIBREADLINE) -lptlctl
-lfs_LDADD := $(LIBREADLINE) parser.o liblustreapi.a -lptlctl obd.o
-lload_LDADD := $(LIBREADLINE) -lptlctl
+if UTILS
 rootsbin_SCRIPTS = mount.lustre
 sbin_PROGRAMS = lctl obdio obdbarrier lload wirecheck wiretest llmount
 sbin_SCRIPTS = lconf lmc llanalyze llstat.pl llobdstat.pl lactive load_ldap.sh lrun
@@ -16,6 +14,14 @@ sbin_SCRIPTS += lwizard
 bin_SCRIPTS = lfind lstripe
 bin_PROGRAMS = lfs
 lib_LIBRARIES = liblustreapi.a
+if LIBLUSTRE
+sbin_SCRIPTS += lrun
+endif # LIBLUSTRE
+endif # UTILS
+
+lctl_LDADD := $(LIBREADLINE) -lptlctl
+lfs_LDADD := $(LIBREADLINE) parser.o liblustreapi.a -lptlctl obd.o
+lload_LDADD := $(LIBREADLINE) -lptlctl
 liblustreapi_a_SOURCES = liblustreapi.c
 wirecheck_SOURCES = wirecheck.c
 wiretest_SOURCES = wiretest.c
@@ -27,10 +33,6 @@ lfs_SOURCES = lfs.c
 llmount_SOURCES = llmount.c 
 llmount_LDADD = $(LIBREADLINE) -lptlctl
 
-if LIBLUSTRE
-sbin_SCRIPTS += lrun
-endif
-
 EXTRA_DIST = $(bin_SCRIPTS) $(sbin_SCRIPTS)
 
 # NOTE: this should only be run on i386.
similarity index 99%
rename from lustre/utils/lconf.in
rename to lustre/utils/lconf
index 8d73cc5..6f74949 100755 (executable)
@@ -35,7 +35,7 @@ if sys.version[0] == '1':
 else:
     from fcntl import F_GETFL, F_SETFL
 
-PYMOD_DIR = "@PYMOD_DIR@"
+PYMOD_DIR = "/usr/lib/lustre/python"
 
 def development_mode():
     base = os.path.dirname(sys.argv[0])
@@ -44,7 +44,7 @@ def development_mode():
     return 0
 
 if development_mode():
-    sys.path.append('@top_srcdir@/utils')
+    sys.path.append('../utils')
 else:
     sys.path.append(PYMOD_DIR)
 
@@ -733,7 +733,7 @@ def mkfs(dev, devsize, fstype, jsize, isize, mkfsoptions, isblock=1):
         # devsize is in 1k, and fs block count is in 4k
         block_cnt = devsize/4
 
-    if fstype in ('ext3', 'extN'):
+    if fstype in ('ext3', 'extN', 'ldiskfs'):
         # ext3 journal size is in megabytes
         if jsize == 0:
             if devsize == 0:
@@ -767,7 +767,7 @@ def mkfs(dev, devsize, fstype, jsize, isize, mkfsoptions, isblock=1):
     if ret:
         panic("Unable to build fs:", dev, string.join(out))
     # enable hash tree indexing on fsswe
-    if fstype in ('ext3', 'extN'):
+    if fstype in ('ext3', 'extN', 'ldiskfs'):
         htree = 'echo "feature FEATURE_C5" | debugfs -w'
         (ret, out) = run (htree, dev)
         if ret:
@@ -1419,6 +1419,8 @@ class MDSDEV(Module):
         self.add_lustre_module('osc', 'osc')
         self.add_lustre_module('lov', 'lov')
         self.add_lustre_module('mds', 'mds')
+        if self.fstype == 'ldiskfs':
+            self.add_lustre_module('ldiskfs', 'ldiskfs')
         if self.fstype:
             self.add_lustre_module('lvfs', 'fsfilt_%s' % (self.fstype))
 
@@ -1604,6 +1606,8 @@ class OSD(Module):
         # modules
         self.add_lustre_module('ost', 'ost')
         # FIXME: should we default to ext3 here?
+        if self.fstype == 'ldiskfs':
+            self.add_lustre_module('ldiskfs', 'ldiskfs')
         if self.fstype:
             self.add_lustre_module('lvfs' , 'fsfilt_%s' % (self.fstype))
         self.add_lustre_module(self.osdtype, self.osdtype)
index a2bbe20..26f66d8 100644 (file)
@@ -34,7 +34,7 @@
 
 /* completion_matches() is #if 0-ed out in modern glibc */
 #ifndef completion_matches
-#define completion_matches rl_completion_matches
+#  define completion_matches rl_completion_matches
 #endif
 extern void using_history(void);
 extern void stifle_history(int);
@@ -248,18 +248,19 @@ static char * command_generator(const char * text, int state)
 /* probably called by readline */
 static char **command_completion(char * text, int start, int end)
 {
-        command_t         * table;
+        command_t   * table;
         char        * pos;
 
         match_tbl = top_level;
+        
         for (table = find_cmd(rl_line_buffer, match_tbl, &pos);
-             table;
-             table = find_cmd(pos, match_tbl, &pos)) {
+             table; table = find_cmd(pos, match_tbl, &pos)) 
+        {
 
                 if (*(pos - 1) == ' ') match_tbl = table->pc_sub_cmd;
         }
 
-        return(completion_matches(text, command_generator));
+        return completion_matches(text, command_generator);
 }
 #endif