-header-guards-2.6-suse.patch
ext3-wantedi-2.6-suse.patch
ext3-san-jdike-2.6-suse.patch
iopen-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
ldiskfs-objs := $(filter %.o,$(ldiskfs_sources:.c=.o))
+EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs
+
@INCLUDE_RULES@
+if LDISKFS
modulefs_DATA = ldiskfs$(KMODEXT)
-$(modulefs_DATA): sources
+endif
ldiskfs_linux_headers := $(addprefix linux/,$(subst ext3,ldiskfs,$(notdir $(linux_headers))))
@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
Kernelenv
Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
aclocal.m4
autom4te.cache
config.log
config.status
configure
.*.cmd
+.depend
+++ /dev/null
-# 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)
--- /dev/null
+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@
# -------- 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) -------------
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=
else
AC_MSG_RESULT([no (asm doesn't point at asm-um)])
fi
- else
+ else
AC_MSG_RESULT([no (asm-um missing)])
fi
fi
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)
if test x$enable_ldiskfs = xyes ; then
AC_DEFINE(CONFIG_LDISKFS_FS_MODULE, 1, [build ldiskfs as a module])
AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [enable extended attributes for ldiskfs])
- AC_DEFINE(CONFIG_LDISKFS_POSIX_ACL, 1, [enable posix acls])
+ AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [enable posix acls])
AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [enable fs security])
fi
-EXTRA_KCFLAGS="-g -I$PWD/portals/include -I$PWD/include $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE"
+EXTRA_KCFLAGS="-g $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE -I$PWD/portals/include -I$PWD/include"
-# ----------- make dep run? ------------------
+# these are like AC_TRY_COMPILE, but try to build modules against the
+# kernel, inside the kernel-tests directory
-if test x$enable_modules != xno ; then
- AC_MSG_CHECKING([if make dep has been run in kernel source (host $host_cpu)])
- if test -f $LINUX/include/linux/config.h ; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([** cannot find $LINUX/include/linux/config.h. Run make dep in $LINUX.])
- fi
-fi
+AC_DEFUN([LUSTRE_MODULE_CONFTEST],
+[cat >conftest.c <<_ACEOF
+$1
+_ACEOF
+])
+
+AC_DEFUN([LUSTRE_MODULE_COMPILE_IFELSE],
+[m4_ifvaln([$1], [LUSTRE_MODULE_CONFTEST([$1])])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.ko
+AS_IF([AC_TRY_COMMAND(cp conftest.c kernel-tests && make [$2] -f $PWD/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX EXTRA_CFLAGS="$EXTRA_KCFLAGS" $ARCH_UM SUBDIRS=$PWD/kernel-tests) >/dev/null && AC_TRY_COMMAND([$3])],
+ [$4],
+ [_AC_MSG_LOG_CONFTEST
+m4_ifvaln([$5],[$5])dnl])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.mod.o kernel-tests/conftest.ko m4_ifval([$1], [kernel-tests/conftest.c conftest.c])[]dnl
+])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_COMPILE],
+[LUSTRE_MODULE_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[$1]], [[$2]])],
+ [modules],
+ [test -s kernel-tests/conftest.o],
+ [$3], [$4])])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_MAKE],
+[LUSTRE_MODULE_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4], [$5], [$6])])
# ------------ include paths ------------------
if test x$enable_modules != xno ; then
- # ------------ autoconf.h ------------------
- AC_MSG_CHECKING([if autoconf.h is in kernel source])
- if test -f $LINUX/include/linux/autoconf.h ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([** cannot find $LINUX/include/linux/autoconf.h. Run make config in $LINUX.])
+ # ------------ .config exists ----------------
+ AC_CHECK_FILE([$LINUX_CONFIG],[],
+ [AC_MSG_ERROR([Kernel config could not be found. If you are building from a kernel-source rpm consult README.kernel-source])])
+
+ # ----------- make dep run? ------------------
+ AC_CHECK_FILES([$LINUX/include/linux/autoconf.h
+ $LINUX/include/linux/version.h
+ $LINUX/include/linux/config.h],[],
+ [AC_MSG_ERROR([Run make config in $LINUX.])])
+
+ # ------------ rhconfig.h includes runtime-generated bits --
+ # red hat kernel-source checks
+
+ # we know this exists after the check above. if the user
+ # tarred up the tree and ran make dep etc. in it, then
+ # version.h gets overwritten with a standard linux one.
+
+ if grep rhconfig $LINUX/include/linux/version.h >/dev/null ; then
+ # This is a clean kernel-source tree, we need to
+ # enable extensive workarounds to get this to build
+ # modules
+ AC_CHECK_FILE([$KERNEL_SOURCE_HEADER],
+ [if test $KERNEL_SOURCE_HEADER = '/boot/kernel.h' ; then
+ AC_MSG_WARN([Using /boot/kernel.h from RUNNING kernel.])
+ AC_MSG_WARN([If this is not what you want, use --with-kernel-source-header.])
+ AC_MSG_WARN([Consult README.kernel-source for details.])
+ fi],
+ [AC_MSG_ERROR([$KERNEL_SOURCE_HEADER not found. Consult README.kernel-source for details.])])
+ EXTRA_KCFLAGS="-include $KERNEL_SOURCE_HEADER $EXTRA_KCFLAGS"
fi
+ # --- check that we can build modules at all
+ AC_MSG_CHECKING([that modules can be built])
+ LUSTRE_MODULE_TRY_COMPILE([],[],
+ [
+ AC_MSG_RESULT([yes])
+ ],[
+ AC_MSG_RESULT([no])
+ AC_MSG_WARN([Consult config.log for details.])
+ AC_MSG_WARN([If you are trying to build with a kernel-source rpm, consult README.kernel-source])
+ AC_MSG_ERROR([Kernel modules could not be built.])
+ ])
+
# ------------ LINUXRELEASE and moduledir ------------------
AC_MSG_CHECKING([for Linux release])
-
- # this is bogus, as it doesn't work against kernel-source rpms
- dnl We need to rid ourselves of the nasty [ ] quotes.
- changequote(, )
- dnl Get release from version.h
- LINUXRELEASE="`sed -ne 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_-]*\).*/\1/p' $LINUX/include/linux/version.h`"
- changequote([, ])
+ rm -f kernel-tests/conftest.i
+ LINUXRELEASE=
+ if test $linux25 = 'yes' ; then
+ makerule="$PWD/kernel-tests"
+ else
+ makerule="_dir_$PWD/kernel-tests"
+ fi
+ LUSTRE_MODULE_TRY_MAKE(
+ [#include <linux/version.h>],
+ [LINUXRELEASE=UTS_RELEASE],
+ [$makerule LUSTRE_KERNEL_TEST=conftest.i],
+ [test -s kernel-tests/conftest.i],
+ [
+ # LINUXRELEASE="UTS_RELEASE"
+ eval $(grep LINUXRELEASE kernel-tests/conftest.i)
+ ],[
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([Could not preprocess test program. Consult config.log for details.])
+ ])
+ rm -f kernel-tests/conftest.i
+ if test x$LINUXRELEASE = x ; then
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([Could not determine Linux release version from linux/version.h.])
+ fi
+ AC_MSG_RESULT([$LINUXRELEASE])
+ AC_SUBST(LINUXRELEASE)
moduledir='$(libdir)/modules/'$LINUXRELEASE/kernel
AC_SUBST(moduledir)
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
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],
])
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
])
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])
])
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
AC_MSG_RESULT([no])
])
+ # ------------ preempt -----------------------
+ AC_MSG_CHECKING([if preempt is enabled])
+ LUSTRE_MODULE_TRY_COMPILE(
+ [
+ #include <linux/config.h>
+ ],[
+ #ifndef CONFIG_PREEMPT
+ #error CONFIG_PREEMPT is not #defined
+ #endif
+ ],[
+ AC_MSG_RESULT([yes])
+ AC_MSG_ERROR([Lustre does not support kernels with preempt enabled.])
+ ],[
+ AC_MSG_RESULT([no])
+ ])
+
if test $BACKINGFS = 'ext3' ; then
# --- Check that ext3 and ext3 xattr are enabled in the kernel
AC_MSG_CHECKING([that ext3 is enabled in the kernel])
# 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
# ---------- other tests and settings ---------
+AC_CHECK_TYPE([spinlock_t],
+ [AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])],
+ [],
+ [#include <linux/spinlock.h>])
# --------- unsigned long long sane? -------
# 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) \
# 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))
Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
.*.cmd
+.depend
--- /dev/null
+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@
# 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
.*.cmd
.*.flags
.tmp_versions
+.depend
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@
# 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
.*.flags
.*.cmd
.tmp_versions
+.depend
MODULES := kibnal
kibnal-objs := ibnal.o ibnal_cb.o
-EXTRA_CFLAGS := @IBCPPFLAGS@
+EXTRA_PRE_CFLAGS := @IBCPPFLAGS@
@INCLUDE_RULES@
+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
.*.flags
.*.cmd
.tmp_versions
+.depend
MODULES := kqswnal
kqswnal-objs := qswnal.o qswnal_cb.o
-EXTRA_CFLAGS := @QSWCPPFLAGS@ -I /usr/include
+EXTRA_PRE_CFLAGS := @QSWCPPFLAGS@ -I/usr/include
@INCLUDE_RULES@
# 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
.*.flags
.*.cmd
.tmp_versions
+.depend
MODULES := kscimacnal
kscimacnal-objs := scimacnal.o scimacnal_cb.o
-EXTRA_CFLAGS += @SCIMACCPPFLAGS@
+EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@
@INCLUDE_RULES@
# 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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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@
# 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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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)
#include <asm/uaccess.h>
#include <asm/segment.h>
#include <linux/miscdevice.h>
+#include <linux/version.h>
# define DEBUG_SUBSYSTEM S_PORTALS
#include <linux/portals_compat25.h>
#include <linux/libcfs.h>
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#include <linux/kallsyms.h>
+#endif
+
unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
S_GMNAL | S_IBNAL);
EXPORT_SYMBOL(portal_subsystem_debug);
#if defined(__arch_um__)
-extern int is_kernel_text_address(unsigned long addr);
-
char *portals_debug_dumpstack(void)
{
asm("int $3");
#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);
<= pbuf + strlen(buffer) + 28 + 1)
break;
size = sprintf(pbuf, "([<%08lx>] %s (0x%p)) ",
- addr, buffer, stack-1);
+ addr, buffer, stack - 1);
}
pbuf += size;
}
*.mod.c
.*.flags
.tmp_versions
+.depend
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)
if MODULES
modulenet_DATA = portals$(KMODEXT)
-endif
+endif # MODULES
+
+endif # CRAY_PORTALS
MOSTLYCLEANFILES = *.o *.ko *.mod.c
DIST_SOURCES = $(portals-objs:%.o=%.c)
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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
+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)
+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)
#include <sys/param.h>
#include <assert.h>
-#include <config.h>
#ifdef HAVE_LIBREADLINE
#define READLINE_LIBRARY
#include <readline/readline.h>
-#endif
/* completion_matches() is #if 0-ed out in modern glibc */
#ifndef completion_matches
-#define completion_matches rl_completion_matches
+# define completion_matches rl_completion_matches
+#endif
#endif
+
extern void using_history(void);
extern void stifle_history(int);
extern void add_history(char *);
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
config.sub
configure
Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
.deps
tags
TAGS
missing
mkinstalldirs
install-sh
+.depend
+.tmp_versions
* version 1.2.x
* bug fixes
- clear page cache after eviction (2766)
- - zero nameidata in detach_mnt (3118)
- - verify d_inode after revalidate_special is valid (3116)
- - use lustre_put_super() to handle zconf unmounts in 2.6 (3064)
tbd Cluster File Systems, Inc. <info@clusterfs.com>
* version 1.2.2
- 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)
+++ /dev/null
-# 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}
--- /dev/null
+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@
--- /dev/null
+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
# DIST_SOURCES = $(<module-name>-objs:.o=.c) <other sources>
# MOSTLYCLEANFILES = *.o *.ko *.mod.c
-ifeq ($(KERNELRELEASE),)
+ifeq ($(PATCHLEVEL),)
include autoMakefile
-ifeq (@MODULES_TRUE@,)
-$(foreach MODULE,$(MODULES),$(MODULE)@KMODEXT@): FORCE
- $(MAKE) @ARCH_UM@ -C $(LINUX) SUBDIRS=$(PWD) modules
-FORCE:
-endif
+tags:
+ rm -f $(top_srcdir)/TAGS
+ ETAGSF=`etags --version | grep -iq exuberant && \
+ echo "-I __initdata,__exitdata,EXPORT_SYMBOL"`; \
+ find $(top_srcdir) -name '*.[hc]' | xargs etags $$ETAGSF -a
+
+ rm -f $(top_srcdir)/tags
+ CTAGSF=`ctags --version | grep -iq exuberant && \
+ echo "-I __initdata,__exitdata,EXPORT_SYMBOL"`; \
+ find $(top_srcdir) -name '*.[hc]' | xargs ctags $$CTAGSF -a
else
-# we want to use -O0 for UML, unless it's already set (ie, in the
-# socknal where we need to build with -O2 so that htonl etc. are
-# linked correctly
-ifeq ($(filter -O%,$(EXTRA_CFLAGS)),)
-EXTRA_CFLAGS += @UML_CFLAGS@
-endif
-EXTRA_CFLAGS += @EXTRA_KCFLAGS@
+include @LINUX_CONFIG@
+
+EXTRA_CFLAGS := $(EXTRA_PRE_CFLAGS)
+EXTRA_CFLAGS += @EXTRA_KCFLAGS@ @UML_CFLAGS@
+EXTRA_CFLAGS += $(EXTRA_POST_CFLAGS)
obj-m := $(patsubst %,%.o,$(MODULES))
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
--- /dev/null
+# 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}
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
+
.*.cmd
.*.flags
.tmp_versions
+.depend
# 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
}
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)
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
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],
])
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])
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
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
tests/Makefile
utils/Lustre/Makefile
utils/Makefile
-utils/lconf
])
config.status
configure
config.h
+config.h.in
stamp-h
stamp-h1
stamp-h.in
+++ /dev/null
-/* include/config.h.in. Generated from configure.in by autoheader. */
-
-/* build ldiskfs as a module */
-#undef CONFIG_LDISKFS_FS_MODULE
-
-/* enable fs security */
-#undef CONFIG_LDISKFS_FS_SECURITY
-
-/* enable extended attributes for ldiskfs */
-#undef CONFIG_LDISKFS_FS_XATTR
-
-/* enable posix acls */
-#undef CONFIG_LDISKFS_POSIX_ACL
-
-/* this kernel contains Red Hat 2.4.20 patches */
-#undef CONFIG_RH_2_4_20
-
-/* kernel has cpu affinity support */
-#undef CPU_AFFINITY
-
-/* Building with Cray Portals */
-#undef CRAY_PORTALS
-
-/* Use the Pinger */
-#undef ENABLE_PINGER
-
-/* the kernel passes struct file to direct_IO */
-#undef HAVE_DIO_FILE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* struct kiobuf has a dovary field */
-#undef HAVE_KIOBUF_DOVARY
-
-/* libefence support is requested */
-#undef HAVE_LIBEFENCE
-
-/* readline library is available */
-#undef HAVE_LIBREADLINE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* struct page has a list field */
-#undef HAVE_PAGE_LIST
-
-/* the kernel defines PDE */
-#undef HAVE_PDE
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* IOCTL Buffer Size */
-#undef OBD_MAX_IOCTL_BUFFER
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* The size of a `unsigned long long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG_LONG
-
-/* use zero-copy TCP */
-#undef SOCKNAL_ZC
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
#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;}
pkginclude_HEADERS = lustre_user.h liblustreapi.h
+
+EXTRA_DIST = $(pkginclude_HEADERS)
+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
--- /dev/null
+#
+# Automatically generated by make menuconfig: don't edit
+#
+CONFIG_X86_64=y
+CONFIG_X86=y
+# CONFIG_ISA is not set
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_EARLY_PRINTK=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_MK8=y
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_TSC=y
+CONFIG_X86_GOOD_APIC=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_PROC_INTF=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_24_API=y
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_POWERNOW_K8_DBG is not set
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MCA is not set
+# CONFIG_EISA is not set
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_MTRR=y
+# CONFIG_SMP is not set
+CONFIG_HPET_TIMER=y
+CONFIG_GART_IOMMU=y
+CONFIG_X86_UP_IOAPIC=y
+CONFIG_MCE=y
+# CONFIG_K8_NUMA is not set
+
+#
+# General setup
+#
+# CONFIG_DESKTOP is not set
+CONFIG_NET=y
+CONFIG_EVLOG=y
+CONFIG_EVLOG_BUFSIZE=128
+CONFIG_EVLOG_FWPRINTK=y
+# CONFIG_EVLOG_PRINTKWLOC is not set
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+CONFIG_HOTPLUG_PCI=m
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_IBM is not set
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_AMD=m
+CONFIG_SYSVIPC=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_SYSCTL=y
+CONFIG_MAX_USER_RT_PRIO=100
+CONFIG_MAX_RT_PRIO=0
+CONFIG_KCORE_ELF=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PM=y
+CONFIG_IA32_EMULATION=y
+
+#
+# ACPI Support
+#
+CONFIG_ACPI=y
+# CONFIG_ACPI_HT_ONLY is not set
+CONFIG_ACPI_INITRD=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_ASUS=m
+CONFIG_ACPI_TOSHIBA=m
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_RELAXED_AML=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_PARTITIONS=m
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+# CONFIG_NFTL_RW is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_OBSOLETE_CHIPS=y
+CONFIG_MTD_AMDSTD=m
+CONFIG_MTD_SHARP=m
+CONFIG_MTD_JEDEC=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP_START=8000000
+CONFIG_MTD_PHYSMAP_LEN=4000000
+CONFIG_MTD_PHYSMAP_BUSWIDTH=2
+CONFIG_MTD_PNC2000=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_ELAN_104NC=m
+CONFIG_MTD_DILNETPC=m
+CONFIG_MTD_DILNETPC_BOOTSIZE=80000
+CONFIG_MTD_MIXMEM=m
+CONFIG_MTD_OCTAGON=m
+CONFIG_MTD_VMAX=m
+CONFIG_MTD_SCx200_DOCFLASH=m
+CONFIG_MTD_L440GX=m
+# CONFIG_MTD_AMD76XROM is not set
+CONFIG_MTD_ICH2ROM=m
+CONFIG_MTD_NETtel=m
+# CONFIG_MTD_SCB2_FLASH is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+CONFIG_MTD_PMC551_BUGFIX=y
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLKMTD=m
+CONFIG_MTD_DOC1000=m
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOCPROBE=m
+CONFIG_MTD_DOCPROBE_ADVANCED=y
+CONFIG_MTD_DOCPROBE_ADDRESS=0000
+CONFIG_MTD_DOCPROBE_HIGH=y
+CONFIG_MTD_DOCPROBE_55AA=y
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=m
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_CML1=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_AMIGA is not set
+# CONFIG_PARPORT_MFC3 is not set
+# CONFIG_PARPORT_ATARI is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_SUNBPP is not set
+CONFIG_PARPORT_OTHER=y
+CONFIG_PARPORT_1284=y
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_DEV_XD is not set
+CONFIG_PARIDE=m
+CONFIG_PARIDE_PARPORT=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_CIPHER_TWOFISH=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=128000
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_STATS=y
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_BLK_DEV_LVM=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_BLK_DEV_DM_MIRROR=m
+
+#
+# Cryptography support (CryptoAPI)
+#
+CONFIG_CRYPTO=y
+CONFIG_CIPHERS=y
+CONFIG_CIPHER_AES=m
+CONFIG_CIPHER_3DES=m
+CONFIG_CIPHER_NULL=m
+CONFIG_CIPHER_DES=m
+CONFIG_DIGESTS=y
+CONFIG_DIGEST_MD5=m
+CONFIG_DIGEST_SHA1=m
+CONFIG_CRYPTODEV=y
+CONFIG_CRYPTOLOOP=m
+CONFIG_CRYPTOLOOP_ATOMIC=y
+# CONFIG_CRYPTOLOOP_IV_HACK is not set
+# CONFIG_CRYPTOLOOP_DEBUG is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IPSEC=m
+CONFIG_IPSEC_DEBUG=y
+CONFIG_IPSEC_DEBUG_DISABLE_DEFAULT=y
+CONFIG_IPSEC_TUNNEL=y
+CONFIG_TUX=m
+CONFIG_TUX_EXTCGI=y
+CONFIG_TUX_EXTENDED_LOG=y
+# CONFIG_TUX_DEBUG is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_FWMARK=y
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_LARGE_TABLES=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_INET_ECN=y
+CONFIG_SYN_COOKIES=y
+CONFIG_IP_IPSEC=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_PSD=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_IPLIMIT=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_AMANDA=m
+# CONFIG_IP_NF_NAT_LOCAL is not set
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_COMPAT_IPCHAINS=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_COMPAT_IPFWADM=m
+CONFIG_IP_NF_NAT_NEEDED=y
+
+#
+# IP: Virtual Server Configuration
+#
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IPV6=m
+# CONFIG_IPV6_DEBUG is not set
+CONFIG_IPV6_IM=y
+CONFIG_IPV6_MODULE_IP_GRE=y
+CONFIG_IPV6_ISATAP=y
+CONFIG_IPV6_PREFIXLIST=y
+CONFIG_IPV6_6TO4_NEXTHOP=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MLD6_ALL_DONE is not set
+# CONFIG_IPV6_NODEINFO is not set
+# CONFIG_IPV6_ZONE is not set
+CONFIG_IPV6_DROP_FAKE_V4MAPPED=y
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IPV6_IPSEC=y
+CONFIG_IPV6_IPSEC_TUNNEL=y
+CONFIG_IPV6_IPV6_TUNNEL=m
+CONFIG_IPV6_MOBILITY=m
+CONFIG_IPV6_MOBILITY_CN=m
+CONFIG_IPV6_MOBILITY_MN=m
+CONFIG_IPV6_MOBILITY_HA=m
+# CONFIG_IPV6_MOBILITY_DEBUG is not set
+# CONFIG_SHARED_IPV6_CARDS is not set
+CONFIG_KHTTPD=m
+CONFIG_KHTTPD_IPV6=y
+# CONFIG_ATM is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+
+#
+# Appletalk devices
+#
+CONFIG_DEV_APPLETALK=y
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_SIOCGIFCONF=y
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_BRIDGE=m
+CONFIG_X25=m
+CONFIG_LAPB=m
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+CONFIG_ECONET=m
+# CONFIG_ECONET_AUNUDP is not set
+# CONFIG_ECONET_NATIVE is not set
+CONFIG_WAN_ROUTER=m
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+
+#
+# Telephony Support
+#
+CONFIG_PHONE=m
+CONFIG_PHONE_IXJ=m
+CONFIG_PHONE_IXJ_PCMCIA=m
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_IDEDISK_STROKE=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEFLOPPY=y
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_BLK_DEV_CMD640=y
+CONFIG_BLK_DEV_CMD640_ENHANCED=y
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_OFFBOARD=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+CONFIG_IDEDMA_ONLYDISK=y
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+# CONFIG_BLK_DEV_ADMA100 is not set
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+# CONFIG_AMD74XX_OVERRIDE is not set
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+CONFIG_PDC202XX_BURST=y
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+CONFIG_PDC202XX_FORCE=y
+# CONFIG_BLK_DEV_RZ1000 is not set
+CONFIG_BLK_DEV_SC1200=y
+# CONFIG_BLK_DEV_SVWKS is not set
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+CONFIG_BLK_DEV_CENATEK=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_IDE_MODES=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_MAX_MAJORS=144
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_SR_EXTRA_DEVS=4
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=m
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+# CONFIG_SCSI_7000FASST is not set
+CONFIG_SCSI_ACARD=m
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_PROBE_EISA_VL=y
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC7XXX_OLD=m
+CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT=y
+CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=24
+CONFIG_AIC7XXX_OLD_PROC_STATS=y
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+# CONFIG_SCSI_DTC3280 is not set
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IPS_OLD=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_PPSCSI=m
+CONFIG_PPSCSI_T348=m
+CONFIG_PPSCSI_T358=m
+CONFIG_PPSCSI_VPI0=m
+CONFIG_PPSCSI_VPI2=m
+CONFIG_PPSCSI_ONSCSI=m
+CONFIG_PPSCSI_SPARCSI=m
+CONFIG_PPSCSI_EPSA2=m
+CONFIG_PPSCSI_EPST=m
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_NCR53C7xx=m
+# CONFIG_SCSI_NCR53C7xx_sync is not set
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=80
+CONFIG_SCSI_NCR53C8XX_PROFILE=y
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX_PQS_PDS=y
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+# CONFIG_SCSI_PAS16 is not set
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+CONFIG_SCSI_QLOGIC_FC_FIRMWARE=y
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLOGIC_QLA2XXX=y
+CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2100=m
+CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200=m
+CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x_TRMS1040=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+# CONFIG_SCSI_T128 is not set
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_DEBUG=m
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+CONFIG_FUSION_ISENSE=m
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+CONFIG_IEEE1394=m
+CONFIG_IEEE1394_PCILYNX=m
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_AMDTP=m
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+# CONFIG_IEEE1394_OUI_DB is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+# CONFIG_ARCNET_COM20020_ISA is not set
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_ETHERTAP=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+CONFIG_HAPPYMEAL=m
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_EL1 is not set
+# CONFIG_EL2 is not set
+# CONFIG_ELPLUS is not set
+# CONFIG_EL16 is not set
+# CONFIG_ELMC is not set
+# CONFIG_ELMC_II is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+# CONFIG_WD80x3 is not set
+# CONFIG_ULTRAMCA is not set
+# CONFIG_ULTRA is not set
+# CONFIG_ULTRA32 is not set
+# CONFIG_SMC9194 is not set
+CONFIG_NET_VENDOR_RACAL=y
+# CONFIG_NI5010 is not set
+# CONFIG_NI52 is not set
+# CONFIG_NI65 is not set
+CONFIG_HP100=m
+# CONFIG_NET_ISA is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_PCNET32_OLD=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_APRICOT is not set
+CONFIG_NET_BCM4400=m
+# CONFIG_CS89x0 is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+CONFIG_EEPRO100=m
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+# CONFIG_LNE390 is not set
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NETGEAR_GA621=m
+CONFIG_NETGEAR_GA622=m
+CONFIG_NE2K_PCI=m
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_TC35815=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_NET_POCKET=y
+# CONFIG_DE600 is not set
+# CONFIG_DE620 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_SK98LIN_T1=y
+CONFIG_SK98LIN_T3=y
+CONFIG_SK98LIN_T8=y
+CONFIG_SK98LIN_T6=y
+CONFIG_SK98LIN_T9=y
+CONFIG_SK98LIN_T4=y
+CONFIG_SK98LIN_T7=y
+CONFIG_SK98LIN_T2=y
+CONFIG_SK98LIN_T5=y
+CONFIG_SK9DLIN=m
+CONFIG_TIGON3=m
+CONFIG_NET_BROADCOM=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+CONFIG_SKFP=m
+CONFIG_NETCONSOLE=m
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+CONFIG_ROADRUNNER_LARGE_RINGS=y
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+CONFIG_STRIP=m
+CONFIG_WAVELAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+CONFIG_AIRONET4500_PROC=m
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+CONFIG_NET_FC=y
+CONFIG_IPHASE5526=m
+CONFIG_RCPCI=m
+CONFIG_SHAPER=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_ARCNET_COM20020_CS=m
+# CONFIG_PCMCIA_IBMTR is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_AIRONET4500_CS=m
+
+#
+# Amateur Radio support
+#
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_SCC_DELAY=y
+CONFIG_SCC_TRXECHO=y
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_SOUNDMODEM=m
+CONFIG_SOUNDMODEM_SBC=y
+CONFIG_SOUNDMODEM_WSS=y
+CONFIG_SOUNDMODEM_AFSK1200=y
+CONFIG_SOUNDMODEM_AFSK2400_7=y
+CONFIG_SOUNDMODEM_AFSK2400_8=y
+CONFIG_SOUNDMODEM_AFSK2666=y
+CONFIG_SOUNDMODEM_HAPN4800=y
+CONFIG_SOUNDMODEM_PSK4800=y
+CONFIG_SOUNDMODEM_FSK9600=y
+CONFIG_YAM=m
+
+#
+# IrDA (infrared) support
+#
+CONFIG_IRDA=m
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+CONFIG_IRTTY_SIR=m
+CONFIG_IRPORT_SIR=m
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_USB_IRDA=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+# CONFIG_TOSHIBA_OLD is not set
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+CONFIG_ISDN_X25=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DRV_LOOP=m
+CONFIG_ISDN_DIVERSION=m
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+# CONFIG_HISAX_TELES_CS is not set
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+# CONFIG_HISAX_AVM_A1_CS is not set
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_USB_AUERISDN=m
+
+#
+# Active ISDN cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_DRV_EICON=y
+CONFIG_ISDN_DRV_EICON_DIVAS=m
+CONFIG_ISDN_DRV_EICON_OLD=m
+CONFIG_ISDN_DRV_EICON_PCI=y
+CONFIG_ISDN_DRV_EICON_ISA=y
+CONFIG_ISDN_DRV_TPAM=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_ECC=m
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+CONFIG_SERIAL_MULTIPORT=y
+CONFIG_HUB6=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_COMPUTONE=m
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_ESPSERIAL is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_ISI=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_N_HDLC=m
+CONFIG_RISCOM8=m
+CONFIG_STALDRV=y
+CONFIG_STALLION=m
+CONFIG_ISTALLION=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_TIPAR=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_PHILIPSPAR=m
+# CONFIG_I2C_ELV is not set
+# CONFIG_I2C_VELLEMAN is not set
+CONFIG_SCx200_I2C=m
+CONFIG_SCx200_I2C_SCL=12
+CONFIG_SCx200_I2C_SDA=13
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_ALGOPCF=m
+# CONFIG_I2C_ELEKTOR is not set
+CONFIG_I2C_MAINBOARD=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_HYDRA=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+# CONFIG_I2C_I810 is not set
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS645=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_PROC=m
+
+#
+# Hardware sensors support
+#
+CONFIG_SENSORS=y
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1024=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_FSCSCY=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_MAXILIFE=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MTP008=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+# CONFIG_SENSORS_LM92 is not set
+CONFIG_SENSORS_SIS5595=m
+# CONFIG_SENSORS_SMSC47M1 is not set
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_OTHER=y
+CONFIG_SENSORS_BT869=m
+CONFIG_SENSORS_DDCMON=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_MATORB=m
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+
+#
+# Mice
+#
+CONFIG_BUSMOUSE=m
+CONFIG_ATIXL_BUSMOUSE=m
+CONFIG_LOGIBUSMOUSE=m
+CONFIG_MS_BUSMOUSE=m
+CONFIG_MOUSE=y
+CONFIG_PSMOUSE=y
+CONFIG_82C710_MOUSE=y
+CONFIG_PC110_PAD=m
+CONFIG_MK712_MOUSE=m
+
+#
+# Joysticks
+#
+CONFIG_INPUT_GAMEPORT=m
+CONFIG_INPUT_NS558=m
+CONFIG_INPUT_LIGHTNING=m
+CONFIG_INPUT_PCIGAME=m
+CONFIG_INPUT_CS461X=m
+CONFIG_INPUT_EMU10K1=m
+CONFIG_INPUT_FM801=m
+CONFIG_INPUT_SERIO=m
+CONFIG_INPUT_SERPORT=m
+CONFIG_INPUT_ANALOG=m
+CONFIG_INPUT_A3D=m
+CONFIG_INPUT_ADI=m
+CONFIG_INPUT_COBRA=m
+CONFIG_INPUT_GF2K=m
+CONFIG_INPUT_GRIP=m
+CONFIG_INPUT_INTERACT=m
+CONFIG_INPUT_TMDC=m
+CONFIG_INPUT_SIDEWINDER=m
+CONFIG_INPUT_IFORCE_USB=m
+CONFIG_INPUT_IFORCE_232=m
+CONFIG_INPUT_WARRIOR=m
+CONFIG_INPUT_MAGELLAN=m
+CONFIG_INPUT_SPACEORB=m
+CONFIG_INPUT_SPACEBALL=m
+CONFIG_INPUT_STINGER=m
+CONFIG_INPUT_DB9=m
+CONFIG_INPUT_GAMECON=m
+CONFIG_INPUT_TURBOGRAFX=m
+CONFIG_QIC02_TAPE=m
+CONFIG_QIC02_DYNCONF=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_PANIC_EVENT=y
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_KCS=m
+CONFIG_IPMI_WATCHDOG=m
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_PCWATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_WAFER_WDT=m
+# CONFIG_I810_TCO is not set
+CONFIG_MIXCOMWD=m
+CONFIG_60XX_WDT=m
+CONFIG_SC1200_WDT=m
+CONFIG_SCx200_WDT=m
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_W83877F_WDT=m
+CONFIG_WDT=m
+CONFIG_WDTPCI=m
+CONFIG_WDT_501=y
+CONFIG_WDT_501_FAN=y
+CONFIG_MACHZ_WDT=m
+CONFIG_DEADMAN=m
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_AMD7XX_TCO=m
+CONFIG_SCx200_GPIO=m
+CONFIG_AMD_RNG=m
+CONFIG_INTEL_RNG=m
+CONFIG_AMD_PM768=m
+CONFIG_NVRAM=m
+CONFIG_RTC=y
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# Ftape, the floppy tape device driver
+#
+CONFIG_FTAPE=m
+CONFIG_ZFTAPE=m
+CONFIG_ZFT_DFLT_BLK_SZ=10240
+CONFIG_ZFT_COMPRESSOR=m
+CONFIG_FT_NR_BUFFERS=3
+CONFIG_FT_PROC_FS=y
+CONFIG_FT_NORMAL_DEBUG=y
+# CONFIG_FT_FULL_DEBUG is not set
+# CONFIG_FT_NO_TRACE is not set
+# CONFIG_FT_NO_TRACE_AT_ALL is not set
+CONFIG_FT_STD_FDC=y
+# CONFIG_FT_MACH2 is not set
+# CONFIG_FT_PROBE_FC10 is not set
+# CONFIG_FT_ALT_FDC is not set
+CONFIG_FT_FDC_THR=8
+CONFIG_FT_FDC_MAX_RATE=2000
+CONFIG_FT_ALPHA_CLOCK=0
+CONFIG_AGP=y
+CONFIG_AGP_AMD_8151=y
+# CONFIG_AGP_INTEL is not set
+# CONFIG_AGP_I810 is not set
+# CONFIG_AGP_VIA is not set
+# CONFIG_AGP_AMD is not set
+# CONFIG_AGP_SIS is not set
+# CONFIG_AGP_ALI is not set
+# CONFIG_AGP_SWORKS is not set
+# CONFIG_AGP_NVIDIA is not set
+CONFIG_DRM=y
+# CONFIG_DRM_OLD is not set
+CONFIG_DRM_NEW=y
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+# CONFIG_DRM_I810_XFREE_41 is not set
+CONFIG_DRM_I830=m
+CONFIG_DRM_MGA=m
+# CONFIG_DRM_SIS is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_MWAVE=m
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+CONFIG_VIDEO_PROC_FS=y
+CONFIG_I2C_PARPORT=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_TUNER_3036=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZR36120=m
+# CONFIG_VIDEO_MEYE is not set
+
+#
+# Radio Adapters
+#
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+# CONFIG_DXR3 is not set
+
+#
+# File systems
+#
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QIFACE_COMPAT=y
+# CONFIG_QIFACE_V1 is not set
+CONFIG_QIFACE_V2=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_XATTR_USER=y
+CONFIG_REISERFS_FS_XATTR_TRUSTED=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_XATTR_SHARING=y
+CONFIG_EXT3_FS_XATTR_USER=y
+CONFIG_EXT3_FS_XATTR_TRUSTED=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_JBD=y
+CONFIG_JBD_DEBUG=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_UMSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FATX_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS_FS=m
+CONFIG_JFFS_FS_VERBOSE=0
+CONFIG_JFFS_PROC_FS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_CRAMFS=m
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_MINIX_FS=y
+CONFIG_VXFS_FS=m
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+CONFIG_HPFS_FS=m
+CONFIG_PROC_FS=y
+CONFIG_PROC_CONFIG=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+CONFIG_QNX4FS_FS=m
+# CONFIG_QNX4FS_RW is not set
+CONFIG_ROMFS_FS=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_XATTR_SHARING=y
+CONFIG_EXT2_FS_XATTR_USER=y
+CONFIG_EXT2_FS_XATTR_TRUSTED=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_SYSV_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_RW=y
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_POSIX_ACL=y
+# CONFIG_XFS_RT is not set
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_DMAPI=y
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_PAGEBUF_DEBUG is not set
+# CONFIG_OCFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_CODA_FS=m
+CONFIG_INTERMEZZO_FS=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_ACL=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_ACL=y
+CONFIG_NFSD_TCP=y
+CONFIG_NFSD_FHALIAS=y
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_CIFS=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_ZISOFS_FS=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_OSF_PARTITION=y
+# CONFIG_AMIGA_PARTITION is not set
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_XBOX_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+CONFIG_EFI_PARTITION=y
+CONFIG_SMB_NLS=y
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+CONFIG_MDA_CONSOLE=m
+
+#
+# Frame-buffer support
+#
+CONFIG_FB=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_CLGEN=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PM2_PCI=y
+CONFIG_FB_PM3=m
+# CONFIG_UNICON is not set
+# CONFIG_UNICON_GB is not set
+# CONFIG_UNICON_GBK is not set
+# CONFIG_UNICON_BIG5 is not set
+# CONFIG_UNICON_JIS is not set
+# CONFIG_UNICON_KSCM is not set
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_HGA=m
+CONFIG_VIDEO_SELECT=y
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G450=y
+CONFIG_FB_MATROX_G100=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_PROC=m
+CONFIG_FB_MATROX_MULTIHEAD=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_RADEON=m
+CONFIG_FB_ATY128=m
+# CONFIG_FB_INTEL is not set
+# CONFIG_FB_SIS is not set
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_VMWARE_SVGA=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FBCON_SPLASHSCREEN=y
+CONFIG_FBCON_CFB16=y
+CONFIG_FBCON_ADVANCED=y
+CONFIG_FBCON_MFB=m
+CONFIG_FBCON_CFB2=m
+CONFIG_FBCON_CFB4=m
+CONFIG_FBCON_CFB8=y
+CONFIG_FBCON_CFB24=y
+CONFIG_FBCON_CFB32=y
+CONFIG_FBCON_AFB=m
+CONFIG_FBCON_ILBM=m
+CONFIG_FBCON_IPLAN2P2=m
+CONFIG_FBCON_IPLAN2P4=m
+CONFIG_FBCON_IPLAN2P8=m
+CONFIG_FBCON_MAC=m
+CONFIG_FBCON_VGA_PLANES=m
+CONFIG_FBCON_VGA=m
+CONFIG_FBCON_HGA=m
+# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
+CONFIG_FBCON_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+CONFIG_SOUND_ALI5455=m
+CONFIG_SOUND_BT878=m
+CONFIG_SOUND_CMPCI=m
+CONFIG_SOUND_CMPCI_FM=y
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_MIDI=y
+CONFIG_SOUND_CMPCI_MPUIO=330
+CONFIG_SOUND_CMPCI_JOYSTICK=y
+CONFIG_SOUND_CMPCI_CM8738=y
+# CONFIG_SOUND_CMPCI_SPDIFINVERSE is not set
+CONFIG_SOUND_CMPCI_SPDIFLOOP=y
+CONFIG_SOUND_CMPCI_SPEAKERS=2
+CONFIG_SOUND_EMU10K1=m
+CONFIG_MIDI_EMU10K1=y
+CONFIG_SOUND_FUSION=m
+CONFIG_SOUND_CS4281=m
+CONFIG_SOUND_ES1370=m
+CONFIG_SOUND_ES1371=m
+CONFIG_SOUND_ESSSOLO1=m
+CONFIG_SOUND_MAESTRO=m
+CONFIG_SOUND_MAESTRO3=m
+CONFIG_SOUND_FORTE=m
+CONFIG_SOUND_ICH=m
+CONFIG_SOUND_RME96XX=m
+CONFIG_SOUND_SONICVIBES=m
+CONFIG_SOUND_TRIDENT=m
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+CONFIG_SOUND_VIA82CXXX=m
+CONFIG_MIDI_VIA82CXXX=y
+CONFIG_SOUND_OSS=m
+CONFIG_SOUND_TRACEINIT=y
+CONFIG_SOUND_DMAP=y
+CONFIG_SOUND_AD1816=m
+CONFIG_SOUND_AD1889=m
+CONFIG_SOUND_SGALAXY=m
+CONFIG_SOUND_ADLIB=m
+CONFIG_SOUND_ACI_MIXER=m
+CONFIG_SOUND_CS4232=m
+CONFIG_SOUND_SSCAPE=m
+CONFIG_SOUND_GUS=m
+# CONFIG_SOUND_GUS16 is not set
+CONFIG_SOUND_GUSMAX=y
+CONFIG_SOUND_VMIDI=m
+CONFIG_SOUND_TRIX=m
+CONFIG_SOUND_MSS=m
+CONFIG_SOUND_MPU401=m
+CONFIG_SOUND_NM256=m
+CONFIG_SOUND_MAD16=m
+CONFIG_MAD16_OLDCARD=y
+CONFIG_SOUND_PAS=m
+# CONFIG_PAS_JOYSTICK is not set
+CONFIG_SOUND_PSS=m
+CONFIG_PSS_MIXER=y
+# CONFIG_PSS_HAVE_BOOT is not set
+CONFIG_SOUND_SB=m
+CONFIG_SOUND_AWE32_SYNTH=m
+CONFIG_SOUND_KAHLUA=m
+CONFIG_SOUND_WAVEFRONT=m
+CONFIG_SOUND_MAUI=m
+CONFIG_SOUND_YM3812=m
+CONFIG_SOUND_OPL3SA1=m
+CONFIG_SOUND_OPL3SA2=m
+CONFIG_SOUND_YMFPCI=m
+CONFIG_SOUND_YMFPCI_LEGACY=y
+CONFIG_SOUND_UART6850=m
+CONFIG_SOUND_AEDSP16=m
+CONFIG_SC6600=y
+CONFIG_SC6600_JOY=y
+CONFIG_SC6600_CDROM=4
+CONFIG_SC6600_CDROMBASE=0
+CONFIG_AEDSP16_SBPRO=y
+CONFIG_AEDSP16_MPU401=y
+CONFIG_SOUND_TVMIXER=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_BIT32_EMUL=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_VERBOSE_PRINTK=y
+CONFIG_SND_DEBUG=y
+CONFIG_SND_DEBUG_MEMORY=y
+# CONFIG_SND_DEBUG_DETECT is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_SERIALMIDI=m
+
+#
+# PCI devices
+#
+CONFIG_SND_ALI5451=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS4281=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_PDPLUS=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_HDSP=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_FM801=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VX222=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_AZT3328=m
+
+#
+# ALSA USB devices
+#
+CONFIG_SND_USB_AUDIO=m
+
+#
+# ALSA PCMCIA devices
+#
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VXP440=m
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_MIDI=m
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_HP8200e=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_DC2XX=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_SCANNER=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_HPUSBSCSI=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_OV511=m
+CONFIG_USB_PWC=m
+CONFIG_USB_SE401=m
+CONFIG_USB_STV680=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_DSBR=m
+CONFIG_USB_DABUSB=m
+# CONFIG_USB_LOGITECH_CAM is not set
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_AX8817X=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USBDNET=m
+CONFIG_USB_USBDNET_VENDOR=0000
+CONFIG_USB_USBDNET_PRODUCT=0000
+CONFIG_USB_USBDNET_CLASS=0000
+CONFIG_USB_USBDNET_SUBCLASS=0000
+CONFIG_USB_USS720=m
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SAFE_SERIAL_VENDOR=0000
+CONFIG_USB_SAFE_SERIAL_PRODUCT=0000
+CONFIG_USB_RIO500=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_TIGL=m
+CONFIG_USB_BRLVGER=m
+CONFIG_USB_LCD=m
+# CONFIG_USB_SPEEDTOUCH is not set
+
+#
+# Bluetooth support
+#
+CONFIG_BLUEZ=m
+CONFIG_BLUEZ_L2CAP=m
+CONFIG_BLUEZ_SCO=m
+CONFIG_BLUEZ_RFCOMM=m
+CONFIG_BLUEZ_RFCOMM_TTY=y
+CONFIG_BLUEZ_BNEP=m
+CONFIG_BLUEZ_BNEP_MC_FILTER=y
+CONFIG_BLUEZ_BNEP_PROTO_FILTER=y
+CONFIG_BLUEZ_CMTP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BLUEZ_HCIUSB=m
+CONFIG_BLUEZ_USB_SCO=y
+# CONFIG_BLUEZ_USB_ZERO_PACKET is not set
+CONFIG_BLUEZ_HCIUART=m
+CONFIG_BLUEZ_HCIUART_H4=y
+CONFIG_BLUEZ_HCIUART_BCSP=y
+CONFIG_BLUEZ_HCIUART_BCSP_TXCRC=y
+CONFIG_BLUEZ_HCIBFUSB=m
+CONFIG_BLUEZ_HCIDTL1=m
+CONFIG_BLUEZ_HCIBT3C=m
+CONFIG_BLUEZ_HCIBLUECARD=m
+CONFIG_BLUEZ_HCIBTUART=m
+CONFIG_BLUEZ_HCIVHCI=m
+
+#
+# Kernel hacking
+#
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_CHECKING is not set
+# CONFIG_INIT_DEBUG is not set
+# CONFIG_X86_REMOTE_DEBUG is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_LEAK is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
+CONFIG_KALLSYMS=y
+
+#
+# Library routines
+#
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_QSORT=y
+CONFIG_FW_LOADER=m
+
+#
+# Build options
+#
+CONFIG_SUSE_KERNEL=y
+CONFIG_CFGNAME="default"
+CONFIG_RELEASE=171
-Index: 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 @@
*/
/* 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;
#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
/*
* 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);
+++ /dev/null
-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);
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;
}
#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;
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...
*/
break;
}
goto return_base;
-@@ -643,6 +680,25 @@
+@@ -643,6 +680,27 @@
* Check the cached dentry for staleness.
*/
dentry = nd->dentry;
+ }
+ 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;
}
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)
{
}
int path_walk(const char * name, struct nameidata *nd)
-@@ -677,6 +735,12 @@
+@@ -677,6 +737,12 @@
return __path_walk(name, nd);
}
/* 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 */
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;
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.
*/
{
struct dentry * dentry;
struct inode *inode;
-@@ -810,13 +887,16 @@
+@@ -810,13 +889,16 @@
goto out;
}
dentry = inode->i_op->lookup(inode, new);
unlock_kernel();
if (!dentry)
-@@ -828,6 +908,12 @@
+@@ -828,6 +910,12 @@
return dentry;
}
/* 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);
access:
return ERR_PTR(-EACCES);
}
-@@ -880,6 +966,23 @@
+@@ -880,6 +968,23 @@
return err;
}
/*
* 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;
}
{
int error;
-@@ -990,12 +1094,15 @@
+@@ -990,12 +1096,15 @@
goto exit_lock;
error = -EACCES; /* shouldn't it be ENOSYS? */
unlock_kernel();
exit_lock:
up(&dir->i_zombie);
-@@ -1004,6 +1111,11 @@
+@@ -1004,6 +1113,11 @@
return error;
}
/*
* open_namei()
*
-@@ -1018,7 +1130,8 @@
+@@ -1018,7 +1132,8 @@
* for symlinks (where the permissions are checked later).
* SMP-safe
*/
{
int acc_mode, error = 0;
struct inode *inode;
-@@ -1028,11 +1141,14 @@
+@@ -1028,11 +1143,14 @@
acc_mode = ACC_MODE(flag);
if (error)
return error;
dentry = nd->dentry;
-@@ -1042,6 +1158,10 @@
+@@ -1042,6 +1160,10 @@
/*
* Create - we need to know the parent.
*/
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);
do_last:
error = PTR_ERR(dentry);
-@@ -1066,11 +1186,12 @@
+@@ -1066,11 +1188,12 @@
goto exit;
}
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);
}
put_write_access(inode);
if (error)
-@@ -1190,8 +1311,10 @@
+@@ -1190,8 +1313,10 @@
return 0;
exit_dput:
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);
dput(dentry);
if (error)
return error;
-@@ -1232,13 +1358,20 @@
+@@ -1232,13 +1360,20 @@
}
dir = nd->dentry;
down(&dir->d_inode->i_sem);
{
struct dentry *dentry;
-@@ -1246,7 +1379,7 @@
+@@ -1246,7 +1381,7 @@
dentry = ERR_PTR(-EEXIST);
if (nd->last_type != LAST_NORM)
goto fail;
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);
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);
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);
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);
path_release(&nd);
out:
putname(tmp);
-@@ -1480,8 +1631,16 @@
+@@ -1480,8 +1641,16 @@
error = -EBUSY;
goto exit1;
}
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;
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);
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);
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,
{
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,
{
int error;
-@@ -1902,9 +2083,18 @@
+@@ -1902,9 +2101,18 @@
if (newnd.last_type != LAST_NORM)
goto exit2;
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;
}
dput(new_dentry);
exit4:
dput(old_dentry);
-@@ -1980,20 +2170,26 @@
+@@ -1980,20 +2188,26 @@
}
static inline int
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)
{
}
/* get the link contents into pagecache */
-@@ -2059,7 +2261,7 @@
+@@ -2059,7 +2279,7 @@
{
struct page *page = NULL;
char *s = page_getlink(dentry, &page);
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;
path_release(&new_nd);
out0:
unlock_kernel();
-Index: linux-2.4.21-suse2/fs/open.c
+Index: linux-2.4.21-x86_64/fs/open.c
===================================================================
---- linux-2.4.21-suse2.orig/fs/open.c 2003-10-28 21:33:59.000000000 +0300
-+++ linux-2.4.21-suse2/fs/open.c 2004-01-10 12:55:39.000000000 +0300
+--- linux-2.4.21-x86_64.orig/fs/open.c 2003-10-28 10:33:59.000000000 -0800
++++ linux-2.4.21-x86_64/fs/open.c 2004-04-12 19:57:36.000000000 -0700
@@ -19,6 +19,8 @@
#include <asm/uaccess.h>
/*
* 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
{
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;
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;
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;
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;
path_release(&nd);
}
return error;
-@@ -222,7 +234,7 @@
+@@ -222,7 +232,7 @@
if (f) {
struct dentry * dentry = f->f_dentry;
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;
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 &&
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;
path_release(&nd);
}
return error;
-@@ -354,12 +368,14 @@
+@@ -354,12 +366,14 @@
{
struct nameidata nd;
int error;
path_release(&nd);
}
return error;
-@@ -374,7 +390,7 @@
+@@ -374,7 +388,7 @@
if (f) {
struct dentry * dentry = f->f_dentry;
if (!err)
err = cp_new_stat64(dentry->d_inode, statbuf);
fput(f);
-Index: linux-2.4.21-suse2/include/linux/dcache.h
+Index: linux-2.4.21-x86_64/include/linux/dcache.h
===================================================================
---- linux-2.4.21-suse2.orig/include/linux/dcache.h 2003-11-11 03:44:28.000000000 +0300
-+++ linux-2.4.21-suse2/include/linux/dcache.h 2004-01-10 12:48:36.000000000 +0300
+--- linux-2.4.21-x86_64.orig/include/linux/dcache.h 2003-11-10 16:44:28.000000000 -0800
++++ linux-2.4.21-x86_64/include/linux/dcache.h 2004-04-12 19:57:36.000000000 -0700
@@ -7,6 +7,51 @@
#include <linux/gdb.h>
#include <linux/mount.h>
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
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;
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 */
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);
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);
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
-header-guards-2.6-suse.patch
ext3-wantedi-2.6-suse.patch
ext3-san-jdike-2.6-suse.patch
iopen-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
--- /dev/null
+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"
ldiskfs-objs := $(filter %.o,$(ldiskfs_sources:.c=.o))
+EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs
+
@INCLUDE_RULES@
+if LDISKFS
modulefs_DATA = ldiskfs$(KMODEXT)
-$(modulefs_DATA): sources
+endif
ldiskfs_linux_headers := $(addprefix linux/,$(subst ext3,ldiskfs,$(notdir $(linux_headers))))
@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
#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];
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)
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);
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);
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);
}
$(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
/* -*- 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.
*
/* -*- 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.
*
/* -*- 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.
*
/* -*- 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.
*
/* -*- 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.
*
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
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)
# 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
}
struct address_space_operations ll_dir_aops = {
- readpage: ll_dir_readpage,
+ .readpage = ll_dir_readpage,
};
/*
}
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
};
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);
#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
};
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;
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
#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;
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;
}
}
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;
}
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
};
}
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
};
}
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
};
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);
}
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);
}
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;
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);
}
}
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;
}
}
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,
};
+
}
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)
/* 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)
}
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
};
*.mod.c
.*.flags
.tmp_versions
+.depend
/* 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
if (lov_size > size)
size = lov_size;
}
+
return size;
}
EXPORT_SYMBOL(lov_merge_size);
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)
*.mod.c
.*.flags
.tmp_versions
+.depend
+sources
ifeq ($(PATCHLEVEL),6)
fsfilt_@BACKINGFS@-objs := fsfilt-@BACKINGFS@.o
-fsfilt-%.c: fsfilt_%.c
+$(obj)/fsfilt-%.c: $(obj)/fsfilt_%.c
ln -s $< $@
endif
# for <ext3/xattr.h> on 2.6
-EXTRA_CFLAGS := -I@LINUX@/fs -I@LUSTRE@
+EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@LUSTRE@ -I@LUSTRE@/ldiskfs
@INCLUDE_RULES@
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" $< > $@
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
#include <linux/ext3_fs.h>
#include <linux/ext3_jbd.h>
#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
#include <linux/ext3_xattr.h>
+#else
+#include <ext3/xattr.h>
+#endif
#include <linux/kp30.h>
#include <linux/lustre_fsfilt.h>
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;
}
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)
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)
*.mod.c
.*.flags
.tmp_versions
+.depend
}
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)
*.mod.c
.*.o.flags
.tmp_versions
+.depend
# 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
/* 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)
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);
}
}
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)
}
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)
*.mod.c
.*.flags
.tmp_versions
+.depend
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
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
}
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} };
}
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,
}
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);
}
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)
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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
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++) {
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;
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",
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);
}
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 "
};
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)
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);
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);
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,
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++) {
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);
*.mod.c
.*.flags
.tmp_versions
+.depend
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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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)
/* 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)
Kernelenv
Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
aclocal.m4
autom4te.cache
config.log
config.status
configure
.*.cmd
+.depend
+++ /dev/null
-# 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)
--- /dev/null
+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@
# -------- 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) -------------
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=
else
AC_MSG_RESULT([no (asm doesn't point at asm-um)])
fi
- else
+ else
AC_MSG_RESULT([no (asm-um missing)])
fi
fi
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)
if test x$enable_ldiskfs = xyes ; then
AC_DEFINE(CONFIG_LDISKFS_FS_MODULE, 1, [build ldiskfs as a module])
AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [enable extended attributes for ldiskfs])
- AC_DEFINE(CONFIG_LDISKFS_POSIX_ACL, 1, [enable posix acls])
+ AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [enable posix acls])
AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [enable fs security])
fi
-EXTRA_KCFLAGS="-g -I$PWD/portals/include -I$PWD/include $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE"
+EXTRA_KCFLAGS="-g $CRAY_PORTALS_INCLUDE $CRAY_PORTALS_COMMANDLINE -I$PWD/portals/include -I$PWD/include"
-# ----------- make dep run? ------------------
+# these are like AC_TRY_COMPILE, but try to build modules against the
+# kernel, inside the kernel-tests directory
-if test x$enable_modules != xno ; then
- AC_MSG_CHECKING([if make dep has been run in kernel source (host $host_cpu)])
- if test -f $LINUX/include/linux/config.h ; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([** cannot find $LINUX/include/linux/config.h. Run make dep in $LINUX.])
- fi
-fi
+AC_DEFUN([LUSTRE_MODULE_CONFTEST],
+[cat >conftest.c <<_ACEOF
+$1
+_ACEOF
+])
+
+AC_DEFUN([LUSTRE_MODULE_COMPILE_IFELSE],
+[m4_ifvaln([$1], [LUSTRE_MODULE_CONFTEST([$1])])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.ko
+AS_IF([AC_TRY_COMMAND(cp conftest.c kernel-tests && make [$2] -f $PWD/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX EXTRA_CFLAGS="$EXTRA_KCFLAGS" $ARCH_UM SUBDIRS=$PWD/kernel-tests) >/dev/null && AC_TRY_COMMAND([$3])],
+ [$4],
+ [_AC_MSG_LOG_CONFTEST
+m4_ifvaln([$5],[$5])dnl])dnl
+rm -f kernel-tests/conftest.o kernel-tests/conftest.mod.c kernel-tests/conftest.mod.o kernel-tests/conftest.ko m4_ifval([$1], [kernel-tests/conftest.c conftest.c])[]dnl
+])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_COMPILE],
+[LUSTRE_MODULE_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[$1]], [[$2]])],
+ [modules],
+ [test -s kernel-tests/conftest.o],
+ [$3], [$4])])
+
+AC_DEFUN([LUSTRE_MODULE_TRY_MAKE],
+[LUSTRE_MODULE_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4], [$5], [$6])])
# ------------ include paths ------------------
if test x$enable_modules != xno ; then
- # ------------ autoconf.h ------------------
- AC_MSG_CHECKING([if autoconf.h is in kernel source])
- if test -f $LINUX/include/linux/autoconf.h ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([** cannot find $LINUX/include/linux/autoconf.h. Run make config in $LINUX.])
+ # ------------ .config exists ----------------
+ AC_CHECK_FILE([$LINUX_CONFIG],[],
+ [AC_MSG_ERROR([Kernel config could not be found. If you are building from a kernel-source rpm consult README.kernel-source])])
+
+ # ----------- make dep run? ------------------
+ AC_CHECK_FILES([$LINUX/include/linux/autoconf.h
+ $LINUX/include/linux/version.h
+ $LINUX/include/linux/config.h],[],
+ [AC_MSG_ERROR([Run make config in $LINUX.])])
+
+ # ------------ rhconfig.h includes runtime-generated bits --
+ # red hat kernel-source checks
+
+ # we know this exists after the check above. if the user
+ # tarred up the tree and ran make dep etc. in it, then
+ # version.h gets overwritten with a standard linux one.
+
+ if grep rhconfig $LINUX/include/linux/version.h >/dev/null ; then
+ # This is a clean kernel-source tree, we need to
+ # enable extensive workarounds to get this to build
+ # modules
+ AC_CHECK_FILE([$KERNEL_SOURCE_HEADER],
+ [if test $KERNEL_SOURCE_HEADER = '/boot/kernel.h' ; then
+ AC_MSG_WARN([Using /boot/kernel.h from RUNNING kernel.])
+ AC_MSG_WARN([If this is not what you want, use --with-kernel-source-header.])
+ AC_MSG_WARN([Consult README.kernel-source for details.])
+ fi],
+ [AC_MSG_ERROR([$KERNEL_SOURCE_HEADER not found. Consult README.kernel-source for details.])])
+ EXTRA_KCFLAGS="-include $KERNEL_SOURCE_HEADER $EXTRA_KCFLAGS"
fi
+ # --- check that we can build modules at all
+ AC_MSG_CHECKING([that modules can be built])
+ LUSTRE_MODULE_TRY_COMPILE([],[],
+ [
+ AC_MSG_RESULT([yes])
+ ],[
+ AC_MSG_RESULT([no])
+ AC_MSG_WARN([Consult config.log for details.])
+ AC_MSG_WARN([If you are trying to build with a kernel-source rpm, consult README.kernel-source])
+ AC_MSG_ERROR([Kernel modules could not be built.])
+ ])
+
# ------------ LINUXRELEASE and moduledir ------------------
AC_MSG_CHECKING([for Linux release])
-
- # this is bogus, as it doesn't work against kernel-source rpms
- dnl We need to rid ourselves of the nasty [ ] quotes.
- changequote(, )
- dnl Get release from version.h
- LINUXRELEASE="`sed -ne 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_-]*\).*/\1/p' $LINUX/include/linux/version.h`"
- changequote([, ])
+ rm -f kernel-tests/conftest.i
+ LINUXRELEASE=
+ if test $linux25 = 'yes' ; then
+ makerule="$PWD/kernel-tests"
+ else
+ makerule="_dir_$PWD/kernel-tests"
+ fi
+ LUSTRE_MODULE_TRY_MAKE(
+ [#include <linux/version.h>],
+ [LINUXRELEASE=UTS_RELEASE],
+ [$makerule LUSTRE_KERNEL_TEST=conftest.i],
+ [test -s kernel-tests/conftest.i],
+ [
+ # LINUXRELEASE="UTS_RELEASE"
+ eval $(grep LINUXRELEASE kernel-tests/conftest.i)
+ ],[
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([Could not preprocess test program. Consult config.log for details.])
+ ])
+ rm -f kernel-tests/conftest.i
+ if test x$LINUXRELEASE = x ; then
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([Could not determine Linux release version from linux/version.h.])
+ fi
+ AC_MSG_RESULT([$LINUXRELEASE])
+ AC_SUBST(LINUXRELEASE)
moduledir='$(libdir)/modules/'$LINUXRELEASE/kernel
AC_SUBST(moduledir)
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
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],
])
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
])
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])
])
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
AC_MSG_RESULT([no])
])
+ # ------------ preempt -----------------------
+ AC_MSG_CHECKING([if preempt is enabled])
+ LUSTRE_MODULE_TRY_COMPILE(
+ [
+ #include <linux/config.h>
+ ],[
+ #ifndef CONFIG_PREEMPT
+ #error CONFIG_PREEMPT is not #defined
+ #endif
+ ],[
+ AC_MSG_RESULT([yes])
+ AC_MSG_ERROR([Lustre does not support kernels with preempt enabled.])
+ ],[
+ AC_MSG_RESULT([no])
+ ])
+
if test $BACKINGFS = 'ext3' ; then
# --- Check that ext3 and ext3 xattr are enabled in the kernel
AC_MSG_CHECKING([that ext3 is enabled in the kernel])
--- /dev/null
+# 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
# ---------- other tests and settings ---------
+AC_CHECK_TYPE([spinlock_t],
+ [AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])],
+ [],
+ [#include <linux/spinlock.h>])
# --------- unsigned long long sane? -------
# 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) \
# 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))
Makefile
-Makefile.in
+autoMakefile
+autoMakefile.in
.*.cmd
+.depend
--- /dev/null
+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@
--- /dev/null
+# 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
.*.cmd
.*.flags
.tmp_versions
+.depend
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@
# 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
.*.flags
.*.cmd
.tmp_versions
+.depend
MODULES := kibnal
kibnal-objs := ibnal.o ibnal_cb.o
-EXTRA_CFLAGS := @IBCPPFLAGS@
+EXTRA_PRE_CFLAGS := @IBCPPFLAGS@
@INCLUDE_RULES@
+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
.*.flags
.*.cmd
.tmp_versions
+.depend
MODULES := kqswnal
kqswnal-objs := qswnal.o qswnal_cb.o
-EXTRA_CFLAGS := @QSWCPPFLAGS@ -I /usr/include
+EXTRA_PRE_CFLAGS := @QSWCPPFLAGS@ -I/usr/include
@INCLUDE_RULES@
# 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
.*.flags
.*.cmd
.tmp_versions
+.depend
MODULES := kscimacnal
kscimacnal-objs := scimacnal.o scimacnal_cb.o
-EXTRA_CFLAGS += @SCIMACCPPFLAGS@
+EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@
@INCLUDE_RULES@
# 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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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@
# 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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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)
#include <asm/uaccess.h>
#include <asm/segment.h>
#include <linux/miscdevice.h>
+#include <linux/version.h>
# define DEBUG_SUBSYSTEM S_PORTALS
#include <linux/portals_compat25.h>
#include <linux/libcfs.h>
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#include <linux/kallsyms.h>
+#endif
+
unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
S_GMNAL | S_IBNAL);
EXPORT_SYMBOL(portal_subsystem_debug);
#if defined(__arch_um__)
-extern int is_kernel_text_address(unsigned long addr);
-
char *portals_debug_dumpstack(void)
{
asm("int $3");
#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);
<= pbuf + strlen(buffer) + 28 + 1)
break;
size = sprintf(pbuf, "([<%08lx>] %s (0x%p)) ",
- addr, buffer, stack-1);
+ addr, buffer, stack - 1);
}
pbuf += size;
}
*.mod.c
.*.flags
.tmp_versions
+.depend
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)
if MODULES
modulenet_DATA = portals$(KMODEXT)
-endif
+endif # MODULES
+
+endif # CRAY_PORTALS
MOSTLYCLEANFILES = *.o *.ko *.mod.c
DIST_SOURCES = $(portals-objs:%.o=%.c)
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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
+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)
#include <sys/param.h>
#include <assert.h>
-#include <config.h>
#ifdef HAVE_LIBREADLINE
#define READLINE_LIBRARY
#include <readline/readline.h>
-#endif
/* completion_matches() is #if 0-ed out in modern glibc */
#ifndef completion_matches
-#define completion_matches rl_completion_matches
+# define completion_matches rl_completion_matches
+#endif
#endif
+
extern void using_history(void);
extern void stifle_history(int);
extern void add_history(char *);
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
*.mod.c
.*.flags
.tmp_versions
+.depend
# 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)
}
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)
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} };
}
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} };
*.mod.c
.*.flags
.tmp_versions
+.depend
l_lock.c: @LUSTRE@/ldlm/l_lock.c
ln -sf $< $@
-EXTRA_CFLAGS := -I@LUSTRE@/ldlm
+EXTRA_PRE_CFLAGS := -I@LUSTRE@/ldlm
@INCLUDE_RULES@
#define DEBUG_SUBSYSTEM S_RPC
#ifndef __KERNEL__
-#include <liblustre.h>
+# include <liblustre.h>
#endif
#include <linux/obd_support.h>
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"
}
(( $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
}
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
}
%{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
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/
%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
%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
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.
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
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
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}
%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
# 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
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
# 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
/* 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);
/* 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
# 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 =
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
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;
}
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;
}
wirecheck
lfs
llmount
-lconf
mount.lustre
wiretest
.*.cmd
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
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
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.
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])
return 0
if development_mode():
- sys.path.append('@top_srcdir@/utils')
+ sys.path.append('../utils')
else:
sys.path.append(PYMOD_DIR)
# 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:
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:
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))
# 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)
/* 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);
/* 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