Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 73623 - sys-fs/fuse won't install using 2.6.9 or 2.6.10 kernels due to references to vfs_permission
Summary: sys-fs/fuse won't install using 2.6.9 or 2.6.10 kernels due to references to ...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-12-06 21:59 UTC by Chris Slycord
Modified: 2004-12-09 07:32 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Slycord 2004-12-06 21:59:11 UTC
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"
Comment 1 Chris Slycord 2004-12-06 22:11:10 UTC
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.
Comment 2 Chris Slycord 2004-12-06 22:26:11 UTC
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.
Comment 3 Stefan Schweizer (RETIRED) gentoo-dev 2004-12-07 07:03:04 UTC
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?
Comment 4 Chris Slycord 2004-12-08 19:51:33 UTC
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.
Comment 5 Stefan Schweizer (RETIRED) gentoo-dev 2004-12-09 07:32:28 UTC
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 :)