Hi,

Solaris 10 x86 64bit, OpenAFS 1.4.12.1


bash-3.00# modload /kernel/fs/amd64/afs
can't load module: Operation not applicable

bash-3.00# tail -1 /var/adm/messages
Aug 1 20:08:16 unknown afs: [ID 718928 kern.notice] misc/nfssrv module must be loaded before loading afs with nfs-xlator


I believe the responsible part of the code is:

openafs-1.4.12.1/src/afs/SOLARIS/osi_vfsops.c
[...]
    530 #ifndef AFS_NONFSTRANS
    531 #if     defined(AFS_SUN55_ENV)
    532     if ((!(mp = mod_find_by_filename("misc", "nfssrv"))
    533 && !(mp = mod_find_by_filename(NULL, NFSSRV))
    534 && !(mp = mod_find_by_filename(NULL, NFSSRV_V9))) || (mp
    535 && !mp->
536 mod_installed))
    537     {
    538         printf
539 ("misc/nfssrv module must be loaded before loading afs with nfs-xlator\n");
    540         return (ENOSYS);
    541     }
[...]

NFSSRV_V9 is definied as:

$ grep NFSSRV_ afs/SOLARIS/osi_machdep.h
#define NFSSRV_V9     "/kernel/misc/sparcv9/nfssrv"

This is of course fine only on SPARC systems and not on x86/64bit.


Before I run modload I also run in another terminal:

bash-3.00# dtrace -n fbt::mod_find_by_filename:entry'{;printf("%s\n", stringof(arg1));}' \ -n fbt::mod_find_by_filename:return'{printf("rc: %d\n", (uint)arg1);}' -q
ufs
rc: 2159728208
nfssrv
rc: 0
/kernel/misc/nfssrv
rc: 0
/kernel/misc/sparcv9/nfssrv
rc: 0

As expected mod_find_by_filename() can't match nfssrv in any provided paths as it should be looking for misc/amd64/nfssrv.

I hacked the /kernel/fs/amd64/afs binary so it points to /kernel/misc/amd64/nfssrv and now it loads fine:

bash-3.00# modload /kernel/fs/amd64/afs
bash-3.00#

bash-3.00# dtrace -n fbt::mod_find_by_filename:entry'{;printf("%s\n", stringof(arg1));}' \ -n fbt::mod_find_by_filename:return'{printf("rc: %d\n", (uint)arg1);}' -q

ufs
rc: 2159728208
nfssrv
rc: 0
/kernel/misc/nfssrv
rc: 0
/kernel/misc/amd64/nfssrv
rc: 2295909344


bash-3.00# modinfo | grep afs
243 fffffffff66f0000  c02f8  65   1  afs (afs syscall interface)
243 fffffffff66f0000  c02f8  65   1  afs (afs syscall interface(32 bit))
243 fffffffff66f0000  c02f8  24   1  afs (afs filesystem)
bash-3.00#


I checked the 1.5.75 release and it looks like there is the same issue there.


--
Robert Milkowski
http://milek.blogspot.com

_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to