Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

support for recent stable kernels needed. #5

Closed
seriv opened this issue May 31, 2010 · 5 comments
Closed

support for recent stable kernels needed. #5

seriv opened this issue May 31, 2010 · 5 comments

Comments

@seriv
Copy link

seriv commented May 31, 2010

Spl rely on ctl_name in the ctl_table structure in include/linux/sysctl.h which is eliminated starting from 2.6.33 stable (commit 86926d0096279b9739ceeff40f68d3c33b9119a9).
It does not check if linux kernel has fix for O_DSYNC flag, which was introduced by commit 6b2f3d1f769be5779b479c37800229d9a4809fc3.
On Fedora 13, with kernel 2.6.33.3-85.fc13 after fixing these 2 problems I run into next one:
{{{
$ make rpm
...
CC [M] /tmp/spl-build-seriv-jx6WvnKt/BUILD/spl-0.4.9/module/splat/splat-vnode.o
/tmp/spl-build-seriv-jx6WvnKt/BUILD/spl-0.4.9/module/splat/splat-vnode.c: In function 'fd_uninstall':
/tmp/spl-build-seriv-jx6WvnKt/BUILD/spl-0.4.9/module/splat/splat-vnode.c:427: error: 'struct files_struct' has no member named 'max_fds'
/tmp/spl-build-seriv-jx6WvnKt/BUILD/spl-0.4.9/module/splat/splat-vnode.c:430: error: 'struct files_struct' has no member named 'fd'
/tmp/spl-build-seriv-jx6WvnKt/BUILD/spl-0.4.9/module/splat/splat-vnode.c:434: error: 'struct files_struct' has no member named 'fd'
/tmp/spl-build-seriv-jx6WvnKt/BUILD/spl-0.4.9/module/splat/splat-vnode.c:435: error: 'struct files_struct' has no member named 'close_on_exec'
...
}}}
I don't know how to fix it.

@behlendorf
Copy link
Contributor

Thanks for the bug report seriv. As you know, the kernel ABI is constantly changing. I have tried to stay current with the latest kernels in the common distros but I haven't gotten to FC13 yes. If you could post patches for your first set of fixes I'll try to make sure they get in to the next official tag.

@seriv
Copy link
Author

seriv commented Jun 3, 2010

Thank you,

I did not saw how to post patches but by forking.

Sergey.

@behlendorf
Copy link
Contributor

Thanks seriv. I'm new to github as well but I think forking is absolutely the right way to handle this. I'm in the process of update the code base to the latest OpenSolaris version of ZFS but once I finish that I'll review your patches and look in to the 2.6.33 build issues.

@seriv
Copy link
Author

seriv commented Jun 7, 2010

Brian, I did some testing. I pulled kernel 2.6.34 from kernel.org and compiled it with configs of FC-13. Copied /boot/config-2.6.33.5-112.fc13.x86_64 and started with "make oldconfig < /dev/null". And I had 'insmod: : error inserting ... /spl.ko’: -1 Bad address" But when I compiled starting with configs of RHEL-6 beta, spl passes all self-checks with 2.6.34 kernel sources!

@behlendorf
Copy link
Contributor

Uses ctl_name in the ctl_table structure in include/linux/sysctl.h

Fixed by commit 79a3bf1

It does not check if linux kernel has fix for O_DSYNC flag

Fixed by commit 6801b71

error: 'struct files_struct' has no member named 'fd'

This is actually an issue with autoconf-2.64, or at least my usage of it. If you need to run autogen.sh make sure you use autoconf-2.63 of earlier. Otherwise just run the configure script as provided which was generated with autoconf-2.63 and everything should be fine.

This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants