Jeffrey Hutzelman wrote:
On Friday, October 27, 2006 03:53:23 PM -0400 "Peter N. Schweitzer" <[EMAIL PROTECTED]> wrote:

#  nm afs_osi.o | grep tasklist_lock
         U tasklist_lock

OK; this is the one we're looking for. That, combined with Stefaan's comment about not having the problem if keyring support is enabled, makes me think the compiler is doing something bogus here, like not correctly handling the 'weak' attribute on an extern symbol not declared in global scope.

Try the following patch:


--- src/afs/afs_osi.c.orig    2006-10-27 18:45:35.000000000 -0400
+++ src/afs/afs_osi.c    2006-10-27 18:45:43.000000000 -0400
@@ -805,11 +805,11 @@
#endif

#if defined(AFS_LINUX22_ENV)
+extern rwlock_t tasklist_lock __attribute__((weak));
void
afs_osi_TraverseProcTable()
{
#if !defined(LINUX_KEYRING_SUPPORT)
-    extern rwlock_t tasklist_lock __attribute__((weak));
    struct task_struct *p;

    if (&tasklist_lock)

Jeff,

That did the trick.  The symbol is no longer unresolved, the kernel
module loads without complaint, and the AFS client software (which is
the only part I use) seems to work fine.

Thanks very much for your help!


I'm still thinking there's some kernel feature that I should have enabled
but didn't know I needed.

No; the symbol really isn't exported in recent kernels; this is not about kernel configuration.

Not to belabor the point, but for my understanding, the tasklist_lock variable within the AFS module and the variable by the same name within
some parts of the kernel code (sched.c, for example) are not related,
it's just a different use of the same name, maybe for the same sort of
thing.  Hence it was only necessary to persuade the compiler to actually
allocate space for the symbol within the AFS module's data section
rather than assume that the symbol would be instantiated elsewhere?

Peter
--
Peter N. Schweitzer (MS 954, U.S. Geological Survey, Reston, VA 20192)
(703) 648-6533  FAX: (703) 648-6252  email: [EMAIL PROTECTED]
<http://geology.usgs.gov/peter/>
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to