From bd1b99d7caa6ab2b7c771524af9178a3da69eeab Mon Sep 17 00:00:00 2001 From: adilger Date: Fri, 16 Apr 2004 23:39:49 +0000 Subject: [PATCH] Land b_smallfix onto HEAD (20040416_1638) (more 2.6 build fixes) b=2912/2922, b=3145 too --- .../kernel_patches/series/ldiskfs-2.6-suse.series | 2 - ldiskfs/ldiskfs/Makefile.in | 2 + ldiskfs/ldiskfs/autoMakefile.am | 6 +- lnet/.cvsignore | 4 +- lnet/Makefile.am | 41 - lnet/Makefile.in | 13 + lnet/archdep.m4 | 221 ++- .../knals/Makefile.am => lnet/autoMakefile.am | 5 +- lnet/build.m4 | 4 + lnet/include/linux/portals_compat25.h | 6 + lnet/klnds/.cvsignore | 4 +- lnet/klnds/Makefile.in | 11 + lnet/klnds/{Makefile.am => autoMakefile.am} | 3 +- lnet/klnds/gmlnd/.cvsignore | 1 + lnet/klnds/gmlnd/Makefile.in | 2 +- lnet/klnds/gmlnd/autoMakefile.am | 6 + lnet/klnds/iblnd/.cvsignore | 1 + lnet/klnds/iblnd/Makefile.in | 2 +- lnet/klnds/iblnd/autoMakefile.am | 6 + lnet/klnds/qswlnd/.cvsignore | 1 + lnet/klnds/qswlnd/Makefile.in | 2 +- lnet/klnds/qswlnd/autoMakefile.am | 6 + lnet/klnds/scimaclnd/.cvsignore | 1 + lnet/klnds/scimaclnd/Makefile.in | 2 +- lnet/klnds/scimaclnd/autoMakefile.am | 6 + lnet/klnds/socklnd/.cvsignore | 1 + lnet/klnds/socklnd/Makefile.in | 2 +- lnet/klnds/socklnd/autoMakefile.am | 4 + lnet/libcfs/.cvsignore | 1 + lnet/libcfs/autoMakefile.am | 2 + lnet/libcfs/debug.c | 45 +- lnet/lnet/.cvsignore | 1 + lnet/lnet/autoMakefile.am | 6 +- lnet/router/.cvsignore | 1 + lnet/router/autoMakefile.am | 4 + lnet/tests/.cvsignore | 1 + lnet/tests/autoMakefile.am | 9 +- lnet/ulnds/Makefile.am | 3 + lnet/ulnds/socklnd/Makefile.am | 3 + lnet/utils/parser.c | 13 +- lustre/.cvsignore | 5 +- lustre/ChangeLog | 7 +- lustre/Makefile.am | 113 -- lustre/Makefile.in | 29 + lustre/README.kernel-source | 74 + lustre/Rules.in | 31 +- lustre/autoMakefile.am | 70 + lustre/autogen.sh | 11 +- lustre/cobd/.cvsignore | 1 + lustre/cobd/autoMakefile.am | 3 +- lustre/cobd/cache_obd.c | 24 +- lustre/configure.in | 54 +- lustre/include/.cvsignore | 1 + lustre/include/config.h.in | 103 - lustre/include/liblustre.h | 4 +- lustre/include/lustre/Makefile.am | 2 + lustre/kernel-tests/Makefile | 19 + .../kernel-2.4.21-suse-2.4.21-2-x86_64.config | 2036 ++++++++++++++++++++ .../patches/export_symbols-2.6-suse.patch | 29 +- .../patches/kernel_text_address-2.6-suse.patch | 26 - .../patches/vfs_intent-2.4.21-suse2.patch | 192 +- lustre/kernel_patches/series/2.6-suse.series | 1 - .../kernel_patches/series/ldiskfs-2.6-suse.series | 2 - lustre/kernel_patches/targets/suse-2.4.21-2.target | 14 + lustre/ldiskfs/.cvsignore | 1 + lustre/ldiskfs/Makefile.in | 2 + lustre/ldiskfs/autoMakefile.am | 6 +- lustre/ldlm/ldlm_lockd.c | 116 +- lustre/liblustre/Makefile.am | 2 + lustre/liblustre/dir.c | 2 +- lustre/liblustre/file.c | 2 +- lustre/liblustre/llite_lib.c | 2 +- lustre/liblustre/namei.c | 2 +- lustre/liblustre/rw.c | 2 +- lustre/liblustre/tests/Makefile.am | 6 +- lustre/llite/autoMakefile.am | 3 +- lustre/llite/dir.c | 12 +- lustre/llite/file.c | 32 +- lustre/llite/llite_lib.c | 30 +- lustre/llite/llite_nfs.c | 4 +- lustre/llite/namei.c | 32 +- lustre/llite/rw24.c | 16 +- lustre/llite/rw26.c | 22 +- lustre/llite/special.c | 110 +- lustre/llite/super.c | 32 +- lustre/llite/super25.c | 26 +- lustre/llite/symlink.c | 12 +- lustre/lov/.cvsignore | 1 + lustre/lov/lov_obd.c | 70 +- lustre/lvfs/.cvsignore | 2 + lustre/lvfs/Makefile.in | 4 +- lustre/lvfs/autoMakefile.am | 5 +- lustre/lvfs/fsfilt_ext3.c | 49 +- lustre/lvfs/fsfilt_reiserfs.c | 26 +- lustre/mdc/.cvsignore | 1 + lustre/mdc/mdc_request.c | 28 +- lustre/mds/.cvsignore | 1 + lustre/mds/autoMakefile.am | 2 + lustre/mds/handler.c | 38 +- lustre/mds/mds_lov.c | 6 +- lustre/mgmt/mgmt_cli.c | 6 +- lustre/mgmt/mgmt_svc.c | 10 +- lustre/obdclass/.cvsignore | 1 + lustre/obdclass/Makefile.in | 2 +- lustre/obdclass/autoMakefile.am | 13 - lustre/obdclass/llog_test.c | 11 +- lustre/obdclass/lprocfs_status.c | 10 +- lustre/obdecho/echo.c | 24 +- lustre/obdecho/echo_client.c | 12 +- lustre/obdfilter/.cvsignore | 1 + lustre/obdfilter/autoMakefile.am | 2 + lustre/obdfilter/filter.c | 113 +- lustre/obdfilter/filter_io_26.c | 52 +- lustre/osc/.cvsignore | 1 + lustre/osc/osc_request.c | 118 +- lustre/ost/.cvsignore | 1 + lustre/ost/autoMakefile.am | 2 + lustre/ost/ost_handler.c | 6 +- lustre/portals/.cvsignore | 4 +- lustre/portals/Makefile.am | 41 - lustre/portals/Makefile.in | 13 + lustre/portals/archdep.m4 | 221 ++- lustre/portals/autoMakefile.am | 8 + lustre/portals/build.m4 | 4 + lustre/portals/include/linux/portals_compat25.h | 6 + lustre/portals/knals/.cvsignore | 4 +- lustre/portals/knals/Makefile.in | 11 + lustre/portals/knals/autoMakefile.am | 6 + lustre/portals/knals/gmnal/.cvsignore | 1 + lustre/portals/knals/gmnal/Makefile.in | 2 +- lustre/portals/knals/gmnal/autoMakefile.am | 6 + lustre/portals/knals/ibnal/.cvsignore | 1 + lustre/portals/knals/ibnal/Makefile.in | 2 +- lustre/portals/knals/ibnal/autoMakefile.am | 6 + lustre/portals/knals/qswnal/.cvsignore | 1 + lustre/portals/knals/qswnal/Makefile.in | 2 +- lustre/portals/knals/qswnal/autoMakefile.am | 6 + lustre/portals/knals/scimacnal/.cvsignore | 1 + lustre/portals/knals/scimacnal/Makefile.in | 2 +- lustre/portals/knals/scimacnal/autoMakefile.am | 6 + lustre/portals/knals/socknal/.cvsignore | 1 + lustre/portals/knals/socknal/Makefile.in | 2 +- lustre/portals/knals/socknal/autoMakefile.am | 4 + lustre/portals/libcfs/.cvsignore | 1 + lustre/portals/libcfs/autoMakefile.am | 2 + lustre/portals/libcfs/debug.c | 45 +- lustre/portals/portals/.cvsignore | 1 + lustre/portals/portals/autoMakefile.am | 6 +- lustre/portals/router/.cvsignore | 1 + lustre/portals/router/autoMakefile.am | 4 + lustre/portals/tests/.cvsignore | 1 + lustre/portals/tests/autoMakefile.am | 9 +- lustre/portals/unals/Makefile.am | 3 + lustre/portals/utils/parser.c | 13 +- lustre/ptlbd/.cvsignore | 1 + lustre/ptlbd/autoMakefile.am | 2 + lustre/ptlbd/blk.c | 6 +- lustre/ptlbd/client.c | 10 +- lustre/ptlbd/server.c | 10 +- lustre/ptlrpc/.cvsignore | 1 + lustre/ptlrpc/Makefile.in | 2 +- lustre/ptlrpc/pack_generic.c | 2 +- lustre/scripts/lmake | 31 +- lustre/scripts/lustre-kernel-2.4.spec.in | 30 +- lustre/smfs/autoMakefile.am | 2 + lustre/snapfs/autoMakefile.am | 2 + lustre/snapfs/utils/Makefile.am | 3 + lustre/snapfs/utils/parser.c | 11 +- lustre/tests/Makefile.am | 2 + lustre/tests/cmknod.c | 4 +- lustre/utils/.cvsignore | 1 - lustre/utils/Makefile.am | 16 +- lustre/utils/{lconf.in => lconf} | 12 +- lustre/utils/parser.c | 11 +- 174 files changed, 3705 insertions(+), 1298 deletions(-) delete mode 100644 lnet/Makefile.am create mode 100644 lnet/Makefile.in rename lustre/portals/knals/Makefile.am => lnet/autoMakefile.am (59%) create mode 100644 lnet/klnds/Makefile.in rename lnet/klnds/{Makefile.am => autoMakefile.am} (59%) delete mode 100644 lustre/Makefile.am create mode 100644 lustre/Makefile.in create mode 100644 lustre/README.kernel-source create mode 100644 lustre/autoMakefile.am delete mode 100644 lustre/include/config.h.in create mode 100644 lustre/kernel_patches/kernel_configs/kernel-2.4.21-suse-2.4.21-2-x86_64.config delete mode 100644 lustre/kernel_patches/patches/kernel_text_address-2.6-suse.patch create mode 100644 lustre/kernel_patches/targets/suse-2.4.21-2.target delete mode 100644 lustre/portals/Makefile.am create mode 100644 lustre/portals/Makefile.in create mode 100644 lustre/portals/autoMakefile.am create mode 100644 lustre/portals/knals/Makefile.in create mode 100644 lustre/portals/knals/autoMakefile.am rename lustre/utils/{lconf.in => lconf} (99%) diff --git a/ldiskfs/kernel_patches/series/ldiskfs-2.6-suse.series b/ldiskfs/kernel_patches/series/ldiskfs-2.6-suse.series index 65e8dcd..cff99dd 100644 --- a/ldiskfs/kernel_patches/series/ldiskfs-2.6-suse.series +++ b/ldiskfs/kernel_patches/series/ldiskfs-2.6-suse.series @@ -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/ldiskfs/ldiskfs/Makefile.in b/ldiskfs/ldiskfs/Makefile.in index 8fe1606..7d1e229 100644 --- a/ldiskfs/ldiskfs/Makefile.in +++ b/ldiskfs/ldiskfs/Makefile.in @@ -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@ diff --git a/ldiskfs/ldiskfs/autoMakefile.am b/ldiskfs/ldiskfs/autoMakefile.am index dabfcbc..b24081e 100644 --- a/ldiskfs/ldiskfs/autoMakefile.am +++ b/ldiskfs/ldiskfs/autoMakefile.am @@ -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 diff --git a/lnet/.cvsignore b/lnet/.cvsignore index bd3d9dd..f30d862 100644 --- a/lnet/.cvsignore +++ b/lnet/.cvsignore @@ -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 index 083edfe..0000000 --- a/lnet/Makefile.am +++ /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 index 0000000..455eaf4 --- /dev/null +++ b/lnet/Makefile.in @@ -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@ diff --git a/lnet/archdep.m4 b/lnet/archdep.m4 index 62cd441..182a485 100644 --- a/lnet/archdep.m4 +++ b/lnet/archdep.m4 @@ -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 ], + [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 + ],[ + #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/knals/Makefile.am b/lnet/autoMakefile.am similarity index 59% rename from lustre/portals/knals/Makefile.am rename to lnet/autoMakefile.am index df6ee5c..bd57e6e 100644 --- a/lustre/portals/knals/Makefile.am +++ b/lnet/autoMakefile.am @@ -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 diff --git a/lnet/build.m4 b/lnet/build.m4 index 8ccb1d3..93a370f 100644 --- a/lnet/build.m4 +++ b/lnet/build.m4 @@ -1,5 +1,9 @@ # ---------- other tests and settings --------- +AC_CHECK_TYPE([spinlock_t], + [AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])], + [], + [#include ]) # --------- unsigned long long sane? ------- diff --git a/lnet/include/linux/portals_compat25.h b/lnet/include/linux/portals_compat25.h index 4803a9b..34c263b 100644 --- a/lnet/include/linux/portals_compat25.h +++ b/lnet/include/linux/portals_compat25.h @@ -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)) diff --git a/lnet/klnds/.cvsignore b/lnet/klnds/.cvsignore index 06c8fdb..f5fd0b0 100644 --- a/lnet/klnds/.cvsignore +++ b/lnet/klnds/.cvsignore @@ -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 index 0000000..8b65144 --- /dev/null +++ b/lnet/klnds/Makefile.in @@ -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/lnet/klnds/Makefile.am b/lnet/klnds/autoMakefile.am similarity index 59% rename from lnet/klnds/Makefile.am rename to lnet/klnds/autoMakefile.am index df6ee5c..60318ee 100644 --- a/lnet/klnds/Makefile.am +++ b/lnet/klnds/autoMakefile.am @@ -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 diff --git a/lnet/klnds/gmlnd/.cvsignore b/lnet/klnds/gmlnd/.cvsignore index 4c4a6ed..642e2e6 100644 --- a/lnet/klnds/gmlnd/.cvsignore +++ b/lnet/klnds/gmlnd/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.cmd .*.flags .tmp_versions +.depend diff --git a/lnet/klnds/gmlnd/Makefile.in b/lnet/klnds/gmlnd/Makefile.in index 3892fb7..89ea361 100644 --- a/lnet/klnds/gmlnd/Makefile.in +++ b/lnet/klnds/gmlnd/Makefile.in @@ -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@ diff --git a/lnet/klnds/gmlnd/autoMakefile.am b/lnet/klnds/gmlnd/autoMakefile.am index 9e92c69..d8b9edb 100644 --- a/lnet/klnds/gmlnd/autoMakefile.am +++ b/lnet/klnds/gmlnd/autoMakefile.am @@ -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 diff --git a/lnet/klnds/iblnd/.cvsignore b/lnet/klnds/iblnd/.cvsignore index 409d56d..48b17e9 100644 --- a/lnet/klnds/iblnd/.cvsignore +++ b/lnet/klnds/iblnd/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.flags .*.cmd .tmp_versions +.depend diff --git a/lnet/klnds/iblnd/Makefile.in b/lnet/klnds/iblnd/Makefile.in index 2b29307..e180b3e 100644 --- a/lnet/klnds/iblnd/Makefile.in +++ b/lnet/klnds/iblnd/Makefile.in @@ -1,6 +1,6 @@ MODULES := kibnal kibnal-objs := ibnal.o ibnal_cb.o -EXTRA_CFLAGS := @IBCPPFLAGS@ +EXTRA_PRE_CFLAGS := @IBCPPFLAGS@ @INCLUDE_RULES@ diff --git a/lnet/klnds/iblnd/autoMakefile.am b/lnet/klnds/iblnd/autoMakefile.am index 46bfc0d..ffe084c 100644 --- a/lnet/klnds/iblnd/autoMakefile.am +++ b/lnet/klnds/iblnd/autoMakefile.am @@ -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 diff --git a/lnet/klnds/qswlnd/.cvsignore b/lnet/klnds/qswlnd/.cvsignore index 409d56d..48b17e9 100644 --- a/lnet/klnds/qswlnd/.cvsignore +++ b/lnet/klnds/qswlnd/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.flags .*.cmd .tmp_versions +.depend diff --git a/lnet/klnds/qswlnd/Makefile.in b/lnet/klnds/qswlnd/Makefile.in index 17b1778..60d09c8 100644 --- a/lnet/klnds/qswlnd/Makefile.in +++ b/lnet/klnds/qswlnd/Makefile.in @@ -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@ diff --git a/lnet/klnds/qswlnd/autoMakefile.am b/lnet/klnds/qswlnd/autoMakefile.am index c601465..b5b2e07 100644 --- a/lnet/klnds/qswlnd/autoMakefile.am +++ b/lnet/klnds/qswlnd/autoMakefile.am @@ -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 diff --git a/lnet/klnds/scimaclnd/.cvsignore b/lnet/klnds/scimaclnd/.cvsignore index 409d56d..48b17e9 100644 --- a/lnet/klnds/scimaclnd/.cvsignore +++ b/lnet/klnds/scimaclnd/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.flags .*.cmd .tmp_versions +.depend diff --git a/lnet/klnds/scimaclnd/Makefile.in b/lnet/klnds/scimaclnd/Makefile.in index 19ee350..c7eb4ac 100644 --- a/lnet/klnds/scimaclnd/Makefile.in +++ b/lnet/klnds/scimaclnd/Makefile.in @@ -1,6 +1,6 @@ MODULES := kscimacnal kscimacnal-objs := scimacnal.o scimacnal_cb.o -EXTRA_CFLAGS += @SCIMACCPPFLAGS@ +EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@ @INCLUDE_RULES@ diff --git a/lnet/klnds/scimaclnd/autoMakefile.am b/lnet/klnds/scimaclnd/autoMakefile.am index 4580d2b..47433cd 100644 --- a/lnet/klnds/scimaclnd/autoMakefile.am +++ b/lnet/klnds/scimaclnd/autoMakefile.am @@ -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 diff --git a/lnet/klnds/socklnd/.cvsignore b/lnet/klnds/socklnd/.cvsignore index 702fcbe..5ed596b 100644 --- a/lnet/klnds/socklnd/.cvsignore +++ b/lnet/klnds/socklnd/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lnet/klnds/socklnd/Makefile.in b/lnet/klnds/socklnd/Makefile.in index 9377751..633b455 100644 --- a/lnet/klnds/socklnd/Makefile.in +++ b/lnet/klnds/socklnd/Makefile.in @@ -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@ diff --git a/lnet/klnds/socklnd/autoMakefile.am b/lnet/klnds/socklnd/autoMakefile.am index 0923459..070b649 100644 --- a/lnet/klnds/socklnd/autoMakefile.am +++ b/lnet/klnds/socklnd/autoMakefile.am @@ -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 diff --git a/lnet/libcfs/.cvsignore b/lnet/libcfs/.cvsignore index 3a771f9..c6f0aa4 100644 --- a/lnet/libcfs/.cvsignore +++ b/lnet/libcfs/.cvsignore @@ -8,3 +8,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lnet/libcfs/autoMakefile.am b/lnet/libcfs/autoMakefile.am index 59576b1..192c3ef 100644 --- a/lnet/libcfs/autoMakefile.am +++ b/lnet/libcfs/autoMakefile.am @@ -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) diff --git a/lnet/libcfs/debug.c b/lnet/libcfs/debug.c index a444e9e..aaf5827 100644 --- a/lnet/libcfs/debug.c +++ b/lnet/libcfs/debug.c @@ -45,6 +45,7 @@ #include #include #include +#include # define DEBUG_SUBSYSTEM S_PORTALS @@ -52,6 +53,10 @@ #include #include +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) +#include +#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; } diff --git a/lnet/lnet/.cvsignore b/lnet/lnet/.cvsignore index 702fcbe..5ed596b 100644 --- a/lnet/lnet/.cvsignore +++ b/lnet/lnet/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lnet/lnet/autoMakefile.am b/lnet/lnet/autoMakefile.am index b4743fe..bf7a107 100644 --- a/lnet/lnet/autoMakefile.am +++ b/lnet/lnet/autoMakefile.am @@ -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) diff --git a/lnet/router/.cvsignore b/lnet/router/.cvsignore index 702fcbe..5ed596b 100644 --- a/lnet/router/.cvsignore +++ b/lnet/router/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lnet/router/autoMakefile.am b/lnet/router/autoMakefile.am index 5249659..fa11e8c 100644 --- a/lnet/router/autoMakefile.am +++ b/lnet/router/autoMakefile.am @@ -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 diff --git a/lnet/tests/.cvsignore b/lnet/tests/.cvsignore index 13c1032..e034130 100644 --- a/lnet/tests/.cvsignore +++ b/lnet/tests/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lnet/tests/autoMakefile.am b/lnet/tests/autoMakefile.am index a1ff7e8..5f81b93 100644 --- a/lnet/tests/autoMakefile.am +++ b/lnet/tests/autoMakefile.am @@ -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 diff --git a/lnet/ulnds/Makefile.am b/lnet/ulnds/Makefile.am index 0c1ec21..4c842a1 100644 --- a/lnet/ulnds/Makefile.am +++ b/lnet/ulnds/Makefile.am @@ -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) diff --git a/lnet/ulnds/socklnd/Makefile.am b/lnet/ulnds/socklnd/Makefile.am index 0c1ec21..4c842a1 100644 --- a/lnet/ulnds/socklnd/Makefile.am +++ b/lnet/ulnds/socklnd/Makefile.am @@ -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) diff --git a/lnet/utils/parser.c b/lnet/utils/parser.c index 426565e..82b4022 100644 --- a/lnet/utils/parser.c +++ b/lnet/utils/parser.c @@ -28,16 +28,16 @@ #include #include -#include #ifdef HAVE_LIBREADLINE #define READLINE_LIBRARY #include -#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 diff --git a/lustre/.cvsignore b/lustre/.cvsignore index fde4320..07a5c92 100644 --- a/lustre/.cvsignore +++ b/lustre/.cvsignore @@ -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 diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 1555716..e1fbe08 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -2,9 +2,6 @@ tbd Cluster File Systems, Inc. * 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. * version 1.2.2 @@ -22,6 +19,10 @@ tbd Cluster File Systems, Inc. - 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 index 4410599..0000000 --- a/lustre/Makefile.am +++ /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 index 0000000..045da85 --- /dev/null +++ b/lustre/Makefile.in @@ -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 index 0000000..0b88efe1 --- /dev/null +++ b/lustre/README.kernel-source @@ -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 diff --git a/lustre/Rules.in b/lustre/Rules.in index 2180940..1a3ae52 100644 --- a/lustre/Rules.in +++ b/lustre/Rules.in @@ -19,25 +19,28 @@ # DIST_SOURCES = $(-objs:.o=.c) # 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 index 0000000..9b829bf --- /dev/null +++ b/lustre/autoMakefile.am @@ -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} diff --git a/lustre/autogen.sh b/lustre/autogen.sh index 3ed60b1..c7588e4 100644 --- a/lustre/autogen.sh +++ b/lustre/autogen.sh @@ -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 + diff --git a/lustre/cobd/.cvsignore b/lustre/cobd/.cvsignore index 4c4a6ed..642e2e6 100644 --- a/lustre/cobd/.cvsignore +++ b/lustre/cobd/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.cmd .*.flags .tmp_versions +.depend diff --git a/lustre/cobd/autoMakefile.am b/lustre/cobd/autoMakefile.am index 7a7fcdc..ab8b4db 100644 --- a/lustre/cobd/autoMakefile.am +++ b/lustre/cobd/autoMakefile.am @@ -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 diff --git a/lustre/cobd/cache_obd.c b/lustre/cobd/cache_obd.c index 9bcd1c2..c42dab1 100644 --- a/lustre/cobd/cache_obd.c +++ b/lustre/cobd/cache_obd.c @@ -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) diff --git a/lustre/configure.in b/lustre/configure.in index 47977cc..035b4e8 100644 --- a/lustre/configure.in +++ b/lustre/configure.in @@ -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 ]) diff --git a/lustre/include/.cvsignore b/lustre/include/.cvsignore index 7b78c04..a8dd680 100644 --- a/lustre/include/.cvsignore +++ b/lustre/include/.cvsignore @@ -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 index 98a2011..0000000 --- a/lustre/include/config.h.in +++ /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 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 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 header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the 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 diff --git a/lustre/include/liblustre.h b/lustre/include/liblustre.h index 842a5da..af80f44 100644 --- a/lustre/include/liblustre.h +++ b/lustre/include/liblustre.h @@ -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;} diff --git a/lustre/include/lustre/Makefile.am b/lustre/include/lustre/Makefile.am index 377bef6..a785ada 100644 --- a/lustre/include/lustre/Makefile.am +++ b/lustre/include/lustre/Makefile.am @@ -5,3 +5,5 @@ pkginclude_HEADERS = lustre_user.h liblustreapi.h + +EXTRA_DIST = $(pkginclude_HEADERS) diff --git a/lustre/kernel-tests/Makefile b/lustre/kernel-tests/Makefile index 959a2d5..7360935 100644 --- a/lustre/kernel-tests/Makefile +++ b/lustre/kernel-tests/Makefile @@ -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 index 0000000..eca7425 --- /dev/null +++ b/lustre/kernel_patches/kernel_configs/kernel-2.4.21-suse-2.4.21-2-x86_64.config @@ -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 diff --git a/lustre/kernel_patches/patches/export_symbols-2.6-suse.patch b/lustre/kernel_patches/patches/export_symbols-2.6-suse.patch index f66abb9..b22d925 100644 --- a/lustre/kernel_patches/patches/export_symbols-2.6-suse.patch +++ b/lustre/kernel_patches/patches/export_symbols-2.6-suse.patch @@ -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 index c60c525..0000000 --- a/lustre/kernel_patches/patches/kernel_text_address-2.6-suse.patch +++ /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); diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch index 25d147d..ec3b64c 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch @@ -12,10 +12,10 @@ 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(¤t->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 @@ -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 #include @@ -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); diff --git a/lustre/kernel_patches/series/2.6-suse.series b/lustre/kernel_patches/series/2.6-suse.series index 99ea296..15af341 100644 --- a/lustre/kernel_patches/series/2.6-suse.series +++ b/lustre/kernel_patches/series/2.6-suse.series @@ -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 diff --git a/lustre/kernel_patches/series/ldiskfs-2.6-suse.series b/lustre/kernel_patches/series/ldiskfs-2.6-suse.series index 65e8dcd..cff99dd 100644 --- a/lustre/kernel_patches/series/ldiskfs-2.6-suse.series +++ b/lustre/kernel_patches/series/ldiskfs-2.6-suse.series @@ -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 index 0000000..c27c3de --- /dev/null +++ b/lustre/kernel_patches/targets/suse-2.4.21-2.target @@ -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" diff --git a/lustre/ldiskfs/.cvsignore b/lustre/ldiskfs/.cvsignore index 3e0d4d6..9ad7f07 100644 --- a/lustre/ldiskfs/.cvsignore +++ b/lustre/ldiskfs/.cvsignore @@ -16,3 +16,4 @@ linux-stage linux *.c *.h +sources diff --git a/lustre/ldiskfs/Makefile.in b/lustre/ldiskfs/Makefile.in index 8fe1606..7d1e229 100644 --- a/lustre/ldiskfs/Makefile.in +++ b/lustre/ldiskfs/Makefile.in @@ -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@ diff --git a/lustre/ldiskfs/autoMakefile.am b/lustre/ldiskfs/autoMakefile.am index dabfcbc..b24081e 100644 --- a/lustre/ldiskfs/autoMakefile.am +++ b/lustre/ldiskfs/autoMakefile.am @@ -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 diff --git a/lustre/ldlm/ldlm_lockd.c b/lustre/ldlm/ldlm_lockd.c index a018807..251816f 100644 --- a/lustre/ldlm/ldlm_lockd.c +++ b/lustre/ldlm/ldlm_lockd.c @@ -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); } diff --git a/lustre/liblustre/Makefile.am b/lustre/liblustre/Makefile.am index 907eb5b..b831bd8 100644 --- a/lustre/liblustre/Makefile.am +++ b/lustre/liblustre/Makefile.am @@ -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 diff --git a/lustre/liblustre/dir.c b/lustre/liblustre/dir.c index a2966a2..05fc153 100644 --- a/lustre/liblustre/dir.c +++ b/lustre/liblustre/dir.c @@ -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. * diff --git a/lustre/liblustre/file.c b/lustre/liblustre/file.c index 9b645d0..4d157c2 100644 --- a/lustre/liblustre/file.c +++ b/lustre/liblustre/file.c @@ -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. * diff --git a/lustre/liblustre/llite_lib.c b/lustre/liblustre/llite_lib.c index f9fa768..31aef17 100644 --- a/lustre/liblustre/llite_lib.c +++ b/lustre/liblustre/llite_lib.c @@ -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. * diff --git a/lustre/liblustre/namei.c b/lustre/liblustre/namei.c index 3339595..0403ad5 100644 --- a/lustre/liblustre/namei.c +++ b/lustre/liblustre/namei.c @@ -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. * diff --git a/lustre/liblustre/rw.c b/lustre/liblustre/rw.c index 8ae6e45..47ac443 100644 --- a/lustre/liblustre/rw.c +++ b/lustre/liblustre/rw.c @@ -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. * diff --git a/lustre/liblustre/tests/Makefile.am b/lustre/liblustre/tests/Makefile.am index a53de13..81e7058 100644 --- a/lustre/liblustre/tests/Makefile.am +++ b/lustre/liblustre/tests/Makefile.am @@ -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) diff --git a/lustre/llite/autoMakefile.am b/lustre/llite/autoMakefile.am index 0ea9ad6..9fdde59 100644 --- a/lustre/llite/autoMakefile.am +++ b/lustre/llite/autoMakefile.am @@ -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 diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index bca0445..5307cb12 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -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 }; diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 080483e..f9d58f7 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -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 }; diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 00fa891..5ae049d 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -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; } } diff --git a/lustre/llite/llite_nfs.c b/lustre/llite/llite_nfs.c index f3b7fc3..93638fd 100644 --- a/lustre/llite/llite_nfs.c +++ b/lustre/llite/llite_nfs.c @@ -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; diff --git a/lustre/llite/namei.c b/lustre/llite/namei.c index 6c0f612..9ca3ec6 100644 --- a/lustre/llite/namei.c +++ b/lustre/llite/namei.c @@ -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 }; diff --git a/lustre/llite/rw24.c b/lustre/llite/rw24.c index 71e194d..8a3099f 100644 --- a/lustre/llite/rw24.c +++ b/lustre/llite/rw24.c @@ -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 }; diff --git a/lustre/llite/rw26.c b/lustre/llite/rw26.c index d048848..b9193e8 100644 --- a/lustre/llite/rw26.c +++ b/lustre/llite/rw26.c @@ -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 }; diff --git a/lustre/llite/special.c b/lustre/llite/special.c index e209697..352849e 100644 --- a/lustre/llite/special.c +++ b/lustre/llite/special.c @@ -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, }; + diff --git a/lustre/llite/super.c b/lustre/llite/super.c index 4d2befe..133407a 100644 --- a/lustre/llite/super.c +++ b/lustre/llite/super.c @@ -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) diff --git a/lustre/llite/super25.c b/lustre/llite/super25.c index 9e9c83e..cc9f533 100644 --- a/lustre/llite/super25.c +++ b/lustre/llite/super25.c @@ -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) diff --git a/lustre/llite/symlink.c b/lustre/llite/symlink.c index 3056bf5..e401266 100644 --- a/lustre/llite/symlink.c +++ b/lustre/llite/symlink.c @@ -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 }; diff --git a/lustre/lov/.cvsignore b/lustre/lov/.cvsignore index 702fcbe..5ed596b 100644 --- a/lustre/lov/.cvsignore +++ b/lustre/lov/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/lov/lov_obd.c b/lustre/lov/lov_obd.c index 1a8bcd4..ff27268 100644 --- a/lustre/lov/lov_obd.c +++ b/lustre/lov/lov_obd.c @@ -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) diff --git a/lustre/lvfs/.cvsignore b/lustre/lvfs/.cvsignore index da1e433..ffeec5c 100644 --- a/lustre/lvfs/.cvsignore +++ b/lustre/lvfs/.cvsignore @@ -13,3 +13,5 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend +sources diff --git a/lustre/lvfs/Makefile.in b/lustre/lvfs/Makefile.in index 1ef8238..791e48d 100644 --- a/lustre/lvfs/Makefile.in +++ b/lustre/lvfs/Makefile.in @@ -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 on 2.6 -EXTRA_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ +EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs @INCLUDE_RULES@ diff --git a/lustre/lvfs/autoMakefile.am b/lustre/lvfs/autoMakefile.am index 7eb8158..1261554 100644 --- a/lustre/lvfs/autoMakefile.am +++ b/lustre/lvfs/autoMakefile.am @@ -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 diff --git a/lustre/lvfs/fsfilt_ext3.c b/lustre/lvfs/fsfilt_ext3.c index 35f89e2..5457625 100644 --- a/lustre/lvfs/fsfilt_ext3.c +++ b/lustre/lvfs/fsfilt_ext3.c @@ -35,7 +35,11 @@ #include #include #include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) #include +#else +#include +#endif #include #include @@ -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) diff --git a/lustre/lvfs/fsfilt_reiserfs.c b/lustre/lvfs/fsfilt_reiserfs.c index b38ba4a..861b663 100644 --- a/lustre/lvfs/fsfilt_reiserfs.c +++ b/lustre/lvfs/fsfilt_reiserfs.c @@ -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) diff --git a/lustre/mdc/.cvsignore b/lustre/mdc/.cvsignore index e31a39b..5d26f00 100644 --- a/lustre/mdc/.cvsignore +++ b/lustre/mdc/.cvsignore @@ -12,3 +12,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/mdc/mdc_request.c b/lustre/mdc/mdc_request.c index fe0144a..30e4fc1 100644 --- a/lustre/mdc/mdc_request.c +++ b/lustre/mdc/mdc_request.c @@ -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) diff --git a/lustre/mds/.cvsignore b/lustre/mds/.cvsignore index 5925e76..d5103fa 100644 --- a/lustre/mds/.cvsignore +++ b/lustre/mds/.cvsignore @@ -12,3 +12,4 @@ autoMakefile *.mod.c .*.o.flags .tmp_versions +.depend diff --git a/lustre/mds/autoMakefile.am b/lustre/mds/autoMakefile.am index 623af10..b05a4b5 100644 --- a/lustre/mds/autoMakefile.am +++ b/lustre/mds/autoMakefile.am @@ -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 diff --git a/lustre/mds/handler.c b/lustre/mds/handler.c index 84a3f0d..2d97357 100644 --- a/lustre/mds/handler.c +++ b/lustre/mds/handler.c @@ -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) diff --git a/lustre/mds/mds_lov.c b/lustre/mds/mds_lov.c index c6b6839..2eece4d 100644 --- a/lustre/mds/mds_lov.c +++ b/lustre/mds/mds_lov.c @@ -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); } diff --git a/lustre/mgmt/mgmt_cli.c b/lustre/mgmt/mgmt_cli.c index 5cbcfae..313a9d5 100644 --- a/lustre/mgmt/mgmt_cli.c +++ b/lustre/mgmt/mgmt_cli.c @@ -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) diff --git a/lustre/mgmt/mgmt_svc.c b/lustre/mgmt/mgmt_svc.c index 8743e72..88fbf48 100644 --- a/lustre/mgmt/mgmt_svc.c +++ b/lustre/mgmt/mgmt_svc.c @@ -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) diff --git a/lustre/obdclass/.cvsignore b/lustre/obdclass/.cvsignore index e31a39b..5d26f00 100644 --- a/lustre/obdclass/.cvsignore +++ b/lustre/obdclass/.cvsignore @@ -12,3 +12,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/obdclass/Makefile.in b/lustre/obdclass/Makefile.in index a35ab94..d092fc5 100644 --- a/lustre/obdclass/Makefile.in +++ b/lustre/obdclass/Makefile.in @@ -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 diff --git a/lustre/obdclass/autoMakefile.am b/lustre/obdclass/autoMakefile.am index a8a1049..79ba5ac 100644 --- a/lustre/obdclass/autoMakefile.am +++ b/lustre/obdclass/autoMakefile.am @@ -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 diff --git a/lustre/obdclass/llog_test.c b/lustre/obdclass/llog_test.c index a45e57d..049db79 100644 --- a/lustre/obdclass/llog_test.c +++ b/lustre/obdclass/llog_test.c @@ -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} }; diff --git a/lustre/obdclass/lprocfs_status.c b/lustre/obdclass/lprocfs_status.c index fcfb991..d5ef04c 100644 --- a/lustre/obdclass/lprocfs_status.c +++ b/lustre/obdclass/lprocfs_status.c @@ -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, diff --git a/lustre/obdecho/echo.c b/lustre/obdecho/echo.c index 808bb41..e9be311 100644 --- a/lustre/obdecho/echo.c +++ b/lustre/obdecho/echo.c @@ -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); diff --git a/lustre/obdecho/echo_client.c b/lustre/obdecho/echo_client.c index 5b1be3d..67935cb 100644 --- a/lustre/obdecho/echo_client.c +++ b/lustre/obdecho/echo_client.c @@ -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) diff --git a/lustre/obdfilter/.cvsignore b/lustre/obdfilter/.cvsignore index e31a39b..5d26f00 100644 --- a/lustre/obdfilter/.cvsignore +++ b/lustre/obdfilter/.cvsignore @@ -12,3 +12,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/obdfilter/autoMakefile.am b/lustre/obdfilter/autoMakefile.am index e2049d9..09d52b2 100644 --- a/lustre/obdfilter/autoMakefile.am +++ b/lustre/obdfilter/autoMakefile.am @@ -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 diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index 6673ddb..944aa0e 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -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) diff --git a/lustre/obdfilter/filter_io_26.c b/lustre/obdfilter/filter_io_26.c index 3794bba..c90d371 100644 --- a/lustre/obdfilter/filter_io_26.c +++ b/lustre/obdfilter/filter_io_26.c @@ -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); diff --git a/lustre/osc/.cvsignore b/lustre/osc/.cvsignore index e31a39b..5d26f00 100644 --- a/lustre/osc/.cvsignore +++ b/lustre/osc/.cvsignore @@ -12,3 +12,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/osc/osc_request.c b/lustre/osc/osc_request.c index c8961b1..52662b9 100644 --- a/lustre/osc/osc_request.c +++ b/lustre/osc/osc_request.c @@ -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 diff --git a/lustre/ost/.cvsignore b/lustre/ost/.cvsignore index e31a39b..5d26f00 100644 --- a/lustre/ost/.cvsignore +++ b/lustre/ost/.cvsignore @@ -12,3 +12,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/ost/autoMakefile.am b/lustre/ost/autoMakefile.am index 6893335..37e7583 100644 --- a/lustre/ost/autoMakefile.am +++ b/lustre/ost/autoMakefile.am @@ -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) diff --git a/lustre/ost/ost_handler.c b/lustre/ost/ost_handler.c index f1c5e45..5d8b535 100644 --- a/lustre/ost/ost_handler.c +++ b/lustre/ost/ost_handler.c @@ -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) diff --git a/lustre/portals/.cvsignore b/lustre/portals/.cvsignore index bd3d9dd..f30d862 100644 --- a/lustre/portals/.cvsignore +++ b/lustre/portals/.cvsignore @@ -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 index 083edfe..0000000 --- a/lustre/portals/Makefile.am +++ /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 index 0000000..455eaf4 --- /dev/null +++ b/lustre/portals/Makefile.in @@ -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@ diff --git a/lustre/portals/archdep.m4 b/lustre/portals/archdep.m4 index 62cd441..182a485 100644 --- a/lustre/portals/archdep.m4 +++ b/lustre/portals/archdep.m4 @@ -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 ], + [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 + ],[ + #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 index 0000000..bd57e6e --- /dev/null +++ b/lustre/portals/autoMakefile.am @@ -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 diff --git a/lustre/portals/build.m4 b/lustre/portals/build.m4 index 8ccb1d3..93a370f 100644 --- a/lustre/portals/build.m4 +++ b/lustre/portals/build.m4 @@ -1,5 +1,9 @@ # ---------- other tests and settings --------- +AC_CHECK_TYPE([spinlock_t], + [AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])], + [], + [#include ]) # --------- unsigned long long sane? ------- diff --git a/lustre/portals/include/linux/portals_compat25.h b/lustre/portals/include/linux/portals_compat25.h index 4803a9b..34c263b 100644 --- a/lustre/portals/include/linux/portals_compat25.h +++ b/lustre/portals/include/linux/portals_compat25.h @@ -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)) diff --git a/lustre/portals/knals/.cvsignore b/lustre/portals/knals/.cvsignore index 06c8fdb..f5fd0b0 100644 --- a/lustre/portals/knals/.cvsignore +++ b/lustre/portals/knals/.cvsignore @@ -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 index 0000000..8b65144 --- /dev/null +++ b/lustre/portals/knals/Makefile.in @@ -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 index 0000000..60318ee --- /dev/null +++ b/lustre/portals/knals/autoMakefile.am @@ -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 diff --git a/lustre/portals/knals/gmnal/.cvsignore b/lustre/portals/knals/gmnal/.cvsignore index 4c4a6ed..642e2e6 100644 --- a/lustre/portals/knals/gmnal/.cvsignore +++ b/lustre/portals/knals/gmnal/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.cmd .*.flags .tmp_versions +.depend diff --git a/lustre/portals/knals/gmnal/Makefile.in b/lustre/portals/knals/gmnal/Makefile.in index 3892fb7..89ea361 100644 --- a/lustre/portals/knals/gmnal/Makefile.in +++ b/lustre/portals/knals/gmnal/Makefile.in @@ -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@ diff --git a/lustre/portals/knals/gmnal/autoMakefile.am b/lustre/portals/knals/gmnal/autoMakefile.am index 9e92c69..d8b9edb 100644 --- a/lustre/portals/knals/gmnal/autoMakefile.am +++ b/lustre/portals/knals/gmnal/autoMakefile.am @@ -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 diff --git a/lustre/portals/knals/ibnal/.cvsignore b/lustre/portals/knals/ibnal/.cvsignore index 409d56d..48b17e9 100644 --- a/lustre/portals/knals/ibnal/.cvsignore +++ b/lustre/portals/knals/ibnal/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.flags .*.cmd .tmp_versions +.depend diff --git a/lustre/portals/knals/ibnal/Makefile.in b/lustre/portals/knals/ibnal/Makefile.in index 2b29307..e180b3e 100644 --- a/lustre/portals/knals/ibnal/Makefile.in +++ b/lustre/portals/knals/ibnal/Makefile.in @@ -1,6 +1,6 @@ MODULES := kibnal kibnal-objs := ibnal.o ibnal_cb.o -EXTRA_CFLAGS := @IBCPPFLAGS@ +EXTRA_PRE_CFLAGS := @IBCPPFLAGS@ @INCLUDE_RULES@ diff --git a/lustre/portals/knals/ibnal/autoMakefile.am b/lustre/portals/knals/ibnal/autoMakefile.am index 46bfc0d..ffe084c 100644 --- a/lustre/portals/knals/ibnal/autoMakefile.am +++ b/lustre/portals/knals/ibnal/autoMakefile.am @@ -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 diff --git a/lustre/portals/knals/qswnal/.cvsignore b/lustre/portals/knals/qswnal/.cvsignore index 409d56d..48b17e9 100644 --- a/lustre/portals/knals/qswnal/.cvsignore +++ b/lustre/portals/knals/qswnal/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.flags .*.cmd .tmp_versions +.depend diff --git a/lustre/portals/knals/qswnal/Makefile.in b/lustre/portals/knals/qswnal/Makefile.in index 17b1778..60d09c8 100644 --- a/lustre/portals/knals/qswnal/Makefile.in +++ b/lustre/portals/knals/qswnal/Makefile.in @@ -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@ diff --git a/lustre/portals/knals/qswnal/autoMakefile.am b/lustre/portals/knals/qswnal/autoMakefile.am index c601465..b5b2e07 100644 --- a/lustre/portals/knals/qswnal/autoMakefile.am +++ b/lustre/portals/knals/qswnal/autoMakefile.am @@ -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 diff --git a/lustre/portals/knals/scimacnal/.cvsignore b/lustre/portals/knals/scimacnal/.cvsignore index 409d56d..48b17e9 100644 --- a/lustre/portals/knals/scimacnal/.cvsignore +++ b/lustre/portals/knals/scimacnal/.cvsignore @@ -7,3 +7,4 @@ autoMakefile .*.flags .*.cmd .tmp_versions +.depend diff --git a/lustre/portals/knals/scimacnal/Makefile.in b/lustre/portals/knals/scimacnal/Makefile.in index 19ee350..c7eb4ac 100644 --- a/lustre/portals/knals/scimacnal/Makefile.in +++ b/lustre/portals/knals/scimacnal/Makefile.in @@ -1,6 +1,6 @@ MODULES := kscimacnal kscimacnal-objs := scimacnal.o scimacnal_cb.o -EXTRA_CFLAGS += @SCIMACCPPFLAGS@ +EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@ @INCLUDE_RULES@ diff --git a/lustre/portals/knals/scimacnal/autoMakefile.am b/lustre/portals/knals/scimacnal/autoMakefile.am index 4580d2b..47433cd 100644 --- a/lustre/portals/knals/scimacnal/autoMakefile.am +++ b/lustre/portals/knals/scimacnal/autoMakefile.am @@ -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 diff --git a/lustre/portals/knals/socknal/.cvsignore b/lustre/portals/knals/socknal/.cvsignore index 702fcbe..5ed596b 100644 --- a/lustre/portals/knals/socknal/.cvsignore +++ b/lustre/portals/knals/socknal/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/portals/knals/socknal/Makefile.in b/lustre/portals/knals/socknal/Makefile.in index 9377751..633b455 100644 --- a/lustre/portals/knals/socknal/Makefile.in +++ b/lustre/portals/knals/socknal/Makefile.in @@ -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@ diff --git a/lustre/portals/knals/socknal/autoMakefile.am b/lustre/portals/knals/socknal/autoMakefile.am index 0923459..070b649 100644 --- a/lustre/portals/knals/socknal/autoMakefile.am +++ b/lustre/portals/knals/socknal/autoMakefile.am @@ -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 diff --git a/lustre/portals/libcfs/.cvsignore b/lustre/portals/libcfs/.cvsignore index 3a771f9..c6f0aa4 100644 --- a/lustre/portals/libcfs/.cvsignore +++ b/lustre/portals/libcfs/.cvsignore @@ -8,3 +8,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/portals/libcfs/autoMakefile.am b/lustre/portals/libcfs/autoMakefile.am index 59576b1..192c3ef 100644 --- a/lustre/portals/libcfs/autoMakefile.am +++ b/lustre/portals/libcfs/autoMakefile.am @@ -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) diff --git a/lustre/portals/libcfs/debug.c b/lustre/portals/libcfs/debug.c index a444e9e..aaf5827 100644 --- a/lustre/portals/libcfs/debug.c +++ b/lustre/portals/libcfs/debug.c @@ -45,6 +45,7 @@ #include #include #include +#include # define DEBUG_SUBSYSTEM S_PORTALS @@ -52,6 +53,10 @@ #include #include +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) +#include +#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; } diff --git a/lustre/portals/portals/.cvsignore b/lustre/portals/portals/.cvsignore index 702fcbe..5ed596b 100644 --- a/lustre/portals/portals/.cvsignore +++ b/lustre/portals/portals/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/portals/portals/autoMakefile.am b/lustre/portals/portals/autoMakefile.am index b4743fe..bf7a107 100644 --- a/lustre/portals/portals/autoMakefile.am +++ b/lustre/portals/portals/autoMakefile.am @@ -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) diff --git a/lustre/portals/router/.cvsignore b/lustre/portals/router/.cvsignore index 702fcbe..5ed596b 100644 --- a/lustre/portals/router/.cvsignore +++ b/lustre/portals/router/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/portals/router/autoMakefile.am b/lustre/portals/router/autoMakefile.am index 5249659..fa11e8c 100644 --- a/lustre/portals/router/autoMakefile.am +++ b/lustre/portals/router/autoMakefile.am @@ -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 diff --git a/lustre/portals/tests/.cvsignore b/lustre/portals/tests/.cvsignore index 13c1032..e034130 100644 --- a/lustre/portals/tests/.cvsignore +++ b/lustre/portals/tests/.cvsignore @@ -7,3 +7,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/portals/tests/autoMakefile.am b/lustre/portals/tests/autoMakefile.am index a1ff7e8..5f81b93 100644 --- a/lustre/portals/tests/autoMakefile.am +++ b/lustre/portals/tests/autoMakefile.am @@ -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 diff --git a/lustre/portals/unals/Makefile.am b/lustre/portals/unals/Makefile.am index 0c1ec21..4c842a1 100644 --- a/lustre/portals/unals/Makefile.am +++ b/lustre/portals/unals/Makefile.am @@ -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) diff --git a/lustre/portals/utils/parser.c b/lustre/portals/utils/parser.c index 426565e..82b4022 100644 --- a/lustre/portals/utils/parser.c +++ b/lustre/portals/utils/parser.c @@ -28,16 +28,16 @@ #include #include -#include #ifdef HAVE_LIBREADLINE #define READLINE_LIBRARY #include -#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 diff --git a/lustre/ptlbd/.cvsignore b/lustre/ptlbd/.cvsignore index 6ccee5e..8d9434e 100644 --- a/lustre/ptlbd/.cvsignore +++ b/lustre/ptlbd/.cvsignore @@ -6,3 +6,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/ptlbd/autoMakefile.am b/lustre/ptlbd/autoMakefile.am index b1efaae..0446dc8 100644 --- a/lustre/ptlbd/autoMakefile.am +++ b/lustre/ptlbd/autoMakefile.am @@ -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) diff --git a/lustre/ptlbd/blk.c b/lustre/ptlbd/blk.c index ccef070..77c0dd8 100644 --- a/lustre/ptlbd/blk.c +++ b/lustre/ptlbd/blk.c @@ -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) diff --git a/lustre/ptlbd/client.c b/lustre/ptlbd/client.c index 2ccf00e..94fc1f2 100644 --- a/lustre/ptlbd/client.c +++ b/lustre/ptlbd/client.c @@ -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} }; diff --git a/lustre/ptlbd/server.c b/lustre/ptlbd/server.c index daa0b3c..f25b811 100644 --- a/lustre/ptlbd/server.c +++ b/lustre/ptlbd/server.c @@ -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} }; diff --git a/lustre/ptlrpc/.cvsignore b/lustre/ptlrpc/.cvsignore index a27fbd9..7496232 100644 --- a/lustre/ptlrpc/.cvsignore +++ b/lustre/ptlrpc/.cvsignore @@ -13,3 +13,4 @@ autoMakefile *.mod.c .*.flags .tmp_versions +.depend diff --git a/lustre/ptlrpc/Makefile.in b/lustre/ptlrpc/Makefile.in index 3387747..6b27d3e7 100644 --- a/lustre/ptlrpc/Makefile.in +++ b/lustre/ptlrpc/Makefile.in @@ -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@ diff --git a/lustre/ptlrpc/pack_generic.c b/lustre/ptlrpc/pack_generic.c index 1ed4f29..9bfdbb4 100644 --- a/lustre/ptlrpc/pack_generic.c +++ b/lustre/ptlrpc/pack_generic.c @@ -27,7 +27,7 @@ #define DEBUG_SUBSYSTEM S_RPC #ifndef __KERNEL__ -#include +# include #endif #include diff --git a/lustre/scripts/lmake b/lustre/scripts/lmake index a79f89b..9f92230 100755 --- a/lustre/scripts/lmake +++ b/lustre/scripts/lmake @@ -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 } diff --git a/lustre/scripts/lustre-kernel-2.4.spec.in b/lustre/scripts/lustre-kernel-2.4.spec.in index 0ff57ea..9ae6368 100644 --- a/lustre/scripts/lustre-kernel-2.4.spec.in +++ b/lustre/scripts/lustre-kernel-2.4.spec.in @@ -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 diff --git a/lustre/smfs/autoMakefile.am b/lustre/smfs/autoMakefile.am index 9d56fd3..3b277a9 100644 --- a/lustre/smfs/autoMakefile.am +++ b/lustre/smfs/autoMakefile.am @@ -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 diff --git a/lustre/snapfs/autoMakefile.am b/lustre/snapfs/autoMakefile.am index 8cf1953..e5a57a9 100644 --- a/lustre/snapfs/autoMakefile.am +++ b/lustre/snapfs/autoMakefile.am @@ -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 diff --git a/lustre/snapfs/utils/Makefile.am b/lustre/snapfs/utils/Makefile.am index 0f3d3fb..1487ee1 100644 --- a/lustre/snapfs/utils/Makefile.am +++ b/lustre/snapfs/utils/Makefile.am @@ -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 diff --git a/lustre/snapfs/utils/parser.c b/lustre/snapfs/utils/parser.c index a2bbe20..da73223 100644 --- a/lustre/snapfs/utils/parser.c +++ b/lustre/snapfs/utils/parser.c @@ -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 diff --git a/lustre/tests/Makefile.am b/lustre/tests/Makefile.am index c65b932..f313234 100644 --- a/lustre/tests/Makefile.am +++ b/lustre/tests/Makefile.am @@ -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 diff --git a/lustre/tests/cmknod.c b/lustre/tests/cmknod.c index fa42e2b..9faf8e2 100644 --- a/lustre/tests/cmknod.c +++ b/lustre/tests/cmknod.c @@ -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; } diff --git a/lustre/utils/.cvsignore b/lustre/utils/.cvsignore index 13989f2..59147ac 100644 --- a/lustre/utils/.cvsignore +++ b/lustre/utils/.cvsignore @@ -16,7 +16,6 @@ lload wirecheck lfs llmount -lconf mount.lustre wiretest .*.cmd diff --git a/lustre/utils/Makefile.am b/lustre/utils/Makefile.am index 162b830..1f7a8b5 100644 --- a/lustre/utils/Makefile.am +++ b/lustre/utils/Makefile.am @@ -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. diff --git a/lustre/utils/lconf.in b/lustre/utils/lconf similarity index 99% rename from lustre/utils/lconf.in rename to lustre/utils/lconf index 8d73cc5..6f74949 100755 --- a/lustre/utils/lconf.in +++ b/lustre/utils/lconf @@ -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) diff --git a/lustre/utils/parser.c b/lustre/utils/parser.c index a2bbe20..26f66d8 100644 --- a/lustre/utils/parser.c +++ b/lustre/utils/parser.c @@ -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 -- 1.8.3.1