diff options
author | Richard Yao <[email protected]> | 2012-06-06 17:08:00 +0000 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-06-11 10:04:49 -0700 |
commit | 6a0936babc14a44986265a12f206c41999bd48c3 (patch) | |
tree | a2787bcc41bca759e12636977f541bcb54bd0e1f /config | |
parent | ab85f8455b995741c479f1cdcf21304de87fdaa8 (diff) |
Linux 3.4 compat, d_make_root() replaces d_alloc_root()
torvalds/linux@adc0e91ab142abe93f5b0d7980ada8a7676231fe introduced
introduced d_make_root() as a replacement for d_alloc_root(). Further
commits appear to have removed d_alloc_root() from the Linux source
tree. This causes the following failure:
error: implicit declaration of function 'd_alloc_root'
[-Werror=implicit-function-declaration]
To correct this we update the code to use the current d_make_root()
interface for readability. Then we introduce an autotools check
to determine if d_make_root() is available. If it isn't then we
define some compatibility logic which used the older d_alloc_root()
interface.
Signed-off-by: Richard Yao <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #776
Diffstat (limited to 'config')
-rw-r--r-- | config/kernel-d-make-root.m4 | 12 | ||||
-rw-r--r-- | config/kernel.m4 | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/config/kernel-d-make-root.m4 b/config/kernel-d-make-root.m4 new file mode 100644 index 000000000..fd2c52d74 --- /dev/null +++ b/config/kernel-d-make-root.m4 @@ -0,0 +1,12 @@ +dnl # +dnl # 3.4.0 API change +dnl # Added d_make_root() to replace previous d_alloc_root() function. +dnl # +AC_DEFUN([ZFS_AC_KERNEL_D_MAKE_ROOT], [ + ZFS_CHECK_SYMBOL_EXPORT( + [d_make_root], + [fs/dcache.c], + [AC_DEFINE(HAVE_D_MAKE_ROOT, 1, + [d_make_root() is available])], + []) +]) diff --git a/config/kernel.m4 b/config/kernel.m4 index 9e4ac11dd..7f07c9063 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -48,6 +48,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ ZFS_AC_KERNEL_CREATE_UMODE_T ZFS_AC_KERNEL_AUTOMOUNT ZFS_AC_KERNEL_INSERT_INODE_LOCKED + ZFS_AC_KERNEL_D_MAKE_ROOT ZFS_AC_KERNEL_D_OBTAIN_ALIAS ZFS_AC_KERNEL_CHECK_DISK_SIZE_CHANGE ZFS_AC_KERNEL_TRUNCATE_SETSIZE |