In kernel version 2.6.9 and 2.6.10, the function "vfs_permission" was removed and in it's place there is a new slightly different function "generic_permission" According to http://www.badcode.org/ the fix would be to patch dir.c in the fuse/kernel/ directory so that the 2 references to vfs_permission are replaced with "generic_permission(inode,mask,NULL);" I haven't had a chance to check this out but I'll try. Reproducible: Always Steps to Reproduce: 1. Use a 2.6.9 or later kernel 2. emerge sys-fs/fuse 3. Note the warnings that "fuse.ko needs unknown symbol vfs_permission"
I found the real problem. The offending file (dir.c) has the following code: #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) err = vfs_permission(inode, mask); #else err = generic_permission(inode, mask, NULL); #endif Changing "#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)" to "#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)" should fix it.
Update: I reinstalled using the updated sources and it works. The offending lines are at line #'s 532 and 545 of the dir.c file located inside the kernel directory.
Strange that I did not run into this problem with 2.6.9-ck.. and different rcs, rc-mm, rc-ck ... What kernel exactly are you using? What version of fuse are you using? When was the change to the kernel made, which of the both functions do you need?
fuse version = 2.1 kernel = 2.6.9-cko3; I just remembered that cko uses patches from the 2.6.10 branch so that explains the confusion. And I personally need the function to be err = generic_permission(inode, mask, NULL); As my kernel version doesn't have the vfs_permission function.
We do not support cko-sources, as they are not in portage. It seems like cko is the only affected kernel, because it has some patches that make 2.6.9 a semi-2.6.10 without changing the version number. You can of course modify the fuse package as you need it, but I wont do it because it might break other 2.6.9 kernels. There is also the option to just use a newer kernel like 2.6.10-rc3-ck1 :)