diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 6d7c5805124e80dafdff02b910a061b34f2e6a3b..fd0b928c99659652d7c84077d9e3760bae9ed05f 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -150,6 +150,13 @@ Description: mds_obd_create error creating tmp object Details : When the user sets quota on root, llog will be affected and can't create files and write files. +Severity : normal +Frequency : Always on ia64 patchless client, and possibly others. +Bugzilla : 12826 +Description: Add EXPORT_SYMBOL check for node_to_cpumask symbol. +Details : This allows the patchless client to be loaded on architectures + without this export. + -------------------------------------------------------------------------------- 2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com> diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 index be52ff9956d45eb399d723f04242a8203787ae65..e563887ff63e280439bc269ac81015c67f949adf 100644 --- a/lustre/autoconf/lustre-core.m4 +++ b/lustre/autoconf/lustre-core.m4 @@ -1093,6 +1093,29 @@ AC_DEFINE(HAVE___D_REHASH, 1, ]) ]) +# The actual symbol exported varies among architectures, so we need +# to check many symbols (but only in the current architecture.) No +# matter what symbol is exported, the kernel #defines node_to_cpumask +# to the appropriate function and that's what we use. +AC_DEFUN([LC_EXPORT_NODE_TO_CPUMASK], + [LB_LINUX_ARCH + LB_CHECK_SYMBOL_EXPORT([node_to_cpumask], + [arch/$LINUX_ARCH/mm/numa.c], + [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1, + [node_to_cpumask is exported by + the kernel])]) # x86_64 + LB_CHECK_SYMBOL_EXPORT([node_to_cpu_mask], + [arch/$LINUX_ARCH/kernel/smpboot.c], + [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1, + [node_to_cpumask is exported by + the kernel])]) # ia64 + LB_CHECK_SYMBOL_EXPORT([node_2_cpu_mask], + [arch/$LINUX_ARCH/kernel/smpboot.c], + [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1, + [node_to_cpumask is exported by + the kernel])]) # i386 + ]) + # # LC_VFS_INTENT_PATCHES # @@ -1134,10 +1157,11 @@ LC_CONFIG_QUOTA LC_CONFIG_HEALTH_CHECK_WRITE LC_TASK_PPTR -# RHEL4 pachess +# RHEL4 patches LC_EXPORT_TRUNCATE_COMPLETE LC_EXPORT_D_REHASH_COND LC_EXPORT___D_REHASH +LC_EXPORT_NODE_TO_CPUMASK LC_STRUCT_KIOBUF LC_FUNC_COND_RESCHED diff --git a/lustre/ptlrpc/service.c b/lustre/ptlrpc/service.c index f785edec8c4b3d0571695899baa8af0d78c03ae5..c81fbc45eac932496e4b17509b6a27efa72c70e1 100644 --- a/lustre/ptlrpc/service.c +++ b/lustre/ptlrpc/service.c @@ -965,7 +965,7 @@ static int ptlrpc_main(void *arg) ptlrpc_daemonize(data->name); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9) && defined CONFIG_NUMA +#if defined(HAVE_NODE_TO_CPUMASK) && defined(CONFIG_NUMA) /* we need to do this before any per-thread allocation is done so that * we get the per-thread allocations on local node. bug 7342 */ if (svc->srv_cpu_affinity) {