aboutsummaryrefslogtreecommitdiffstats
path: root/config/kernel-d-make-root.m4
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2012-06-06 17:08:00 +0000
committerBrian Behlendorf <[email protected]>2012-06-11 10:04:49 -0700
commit6a0936babc14a44986265a12f206c41999bd48c3 (patch)
treea2787bcc41bca759e12636977f541bcb54bd0e1f /config/kernel-d-make-root.m4
parentab85f8455b995741c479f1cdcf21304de87fdaa8 (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/kernel-d-make-root.m4')
-rw-r--r--config/kernel-d-make-root.m412
1 files changed, 12 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])],
+ [])
+])