diff options
author | Brian Behlendorf <[email protected]> | 2010-03-04 12:14:56 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2010-03-04 12:14:56 -0800 |
commit | 3977f8370f8caf57600deff6795894410f0e715e (patch) | |
tree | e03e58e08aa6e97cbeeb6e9c7fd2ce6ae510eb82 /config | |
parent | 694921bc49b3267b3fc0bc3a9e753fbc206e1a61 (diff) |
Linux 2.6.32 compat, proc_handler() API change
As of linux-2.6.32 the 'struct file *filp' argument was dropped from
the proc_handle() prototype. It was apparently unused _almost_
everywhere in the kernel and this was simply cleanup.
I've added a new SPL_AC_5ARGS_PROC_HANDLER autoconf check for this and
the proper compat macros to correctly define the prototypes and some
helper functions. It's not pretty but API compat changes rarely are.
Diffstat (limited to 'config')
-rw-r--r-- | config/spl-build.m4 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/config/spl-build.m4 b/config/spl-build.m4 index 9fa7bc811..e2e2112e7 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -72,6 +72,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [ SPL_AC_CRED_STRUCT SPL_AC_GROUPS_SEARCH SPL_AC_PUT_TASK_STRUCT + SPL_AC_5ARGS_PROC_HANDLER ]) AC_DEFUN([SPL_AC_MODULE_SYMVERS], [ @@ -1371,3 +1372,22 @@ AC_DEFUN([SPL_AC_PUT_TASK_STRUCT], [ [__put_task_struct() is available])], []) ]) + +dnl # +dnl # 2.6.32 API change, +dnl # Unused 'struct file *' removed from prototype. +dnl # +AC_DEFUN([SPL_AC_5ARGS_PROC_HANDLER], [ + AC_MSG_CHECKING([whether proc_handler() wants 5 args]) + SPL_LINUX_TRY_COMPILE([ + #include <linux/sysctl.h> + ],[ + proc_dostring(NULL, 0, NULL, NULL, NULL); + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_5ARGS_PROC_HANDLER, 1, + [proc_handler() wants 5 args]) + ],[ + AC_MSG_RESULT(no) + ]) +]) |