]> git.proxmox.com Git - mirror_zfs.git/blame - config/kernel-dentry-operations.m4
Remove zpl_revalidate
[mirror_zfs.git] / config / kernel-dentry-operations.m4
CommitLineData
608f8749
BB
1dnl #
2dnl # 3.4.0 API change
3dnl # Added d_make_root() to replace previous d_alloc_root() function.
4dnl #
5AC_DEFUN([ZFS_AC_KERNEL_SRC_D_MAKE_ROOT], [
6 ZFS_LINUX_TEST_SRC([d_make_root], [
7 #include <linux/dcache.h>
8 ], [
9 d_make_root(NULL);
10 ])
11])
12
13AC_DEFUN([ZFS_AC_KERNEL_D_MAKE_ROOT], [
14 AC_MSG_CHECKING([whether d_make_root() is available])
15 ZFS_LINUX_TEST_RESULT_SYMBOL([d_make_root],
16 [d_make_root], [fs/dcache.c], [
17 AC_MSG_RESULT(yes)
18 AC_DEFINE(HAVE_D_MAKE_ROOT, 1, [d_make_root() is available])
19 ], [
20 AC_MSG_RESULT(no)
21 ])
22])
23
24dnl #
25dnl # 2.6.28 API change
26dnl # Added d_obtain_alias() helper function.
27dnl #
28AC_DEFUN([ZFS_AC_KERNEL_SRC_D_OBTAIN_ALIAS], [
29 ZFS_LINUX_TEST_SRC([d_obtain_alias], [
30 #include <linux/dcache.h>
31 ], [
32 d_obtain_alias(NULL);
33 ])
34])
35
36AC_DEFUN([ZFS_AC_KERNEL_D_OBTAIN_ALIAS], [
37 AC_MSG_CHECKING([whether d_obtain_alias() is available])
38 ZFS_LINUX_TEST_RESULT_SYMBOL([d_obtain_alias],
39 [d_obtain_alias], [fs/dcache.c], [
40 AC_MSG_RESULT(yes)
41 AC_DEFINE(HAVE_D_OBTAIN_ALIAS, 1,
42 [d_obtain_alias() is available])
43 ], [
44 AC_MSG_RESULT(no)
45 ])
46])
47
48dnl #
49dnl # 2.6.12 API change
50dnl # d_prune_aliases() helper function available.
51dnl #
52AC_DEFUN([ZFS_AC_KERNEL_SRC_D_PRUNE_ALIASES], [
53 ZFS_LINUX_TEST_SRC([d_prune_aliases], [
54 #include <linux/dcache.h>
55 ], [
56 struct inode *ip = NULL;
57 d_prune_aliases(ip);
58 ])
59])
60
61AC_DEFUN([ZFS_AC_KERNEL_D_PRUNE_ALIASES], [
62 AC_MSG_CHECKING([whether d_prune_aliases() is available])
63 ZFS_LINUX_TEST_RESULT_SYMBOL([d_prune_aliases],
64 [d_prune_aliases], [fs/dcache.c], [
65 AC_MSG_RESULT(yes)
66 AC_DEFINE(HAVE_D_PRUNE_ALIASES, 1,
67 [d_prune_aliases() is available])
68 ], [
69 AC_MSG_RESULT(no)
70 ])
71])
72
73dnl #
74dnl # 2.6.38 API change
75dnl # Added d_set_d_op() helper function.
76dnl #
77AC_DEFUN([ZFS_AC_KERNEL_SRC_D_SET_D_OP], [
78 ZFS_LINUX_TEST_SRC([d_set_d_op], [
79 #include <linux/dcache.h>
80 ], [
81 d_set_d_op(NULL, NULL);
82 ])
83])
84
85AC_DEFUN([ZFS_AC_KERNEL_D_SET_D_OP], [
86 AC_MSG_CHECKING([whether d_set_d_op() is available])
87 ZFS_LINUX_TEST_RESULT_SYMBOL([d_set_d_op],
88 [d_set_d_op], [fs/dcache.c], [
89 AC_MSG_RESULT(yes)
90 AC_DEFINE(HAVE_D_SET_D_OP, 1, [d_set_d_op() is available])
91 ], [
92 AC_MSG_RESULT(no)
93 ])
94])
95
f1a05fa1
NB
96dnl #
97dnl # 3.6 API change
98dnl #
608f8749
BB
99AC_DEFUN([ZFS_AC_KERNEL_SRC_D_REVALIDATE_NAMEIDATA], [
100 ZFS_LINUX_TEST_SRC([dentry_operations_revalidate], [
f1a05fa1 101 #include <linux/dcache.h>
e921f650 102 #include <linux/sched.h>
c38367c7
RY
103
104 int revalidate (struct dentry *dentry,
105 struct nameidata *nidata) { return 0; }
106
107 static const struct dentry_operations
108 dops __attribute__ ((unused)) = {
109 .d_revalidate = revalidate,
f1a05fa1 110 };
608f8749
BB
111 ],[])
112])
113
114AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA], [
115 AC_MSG_CHECKING([whether dops->d_revalidate() takes struct nameidata])
116 ZFS_LINUX_TEST_RESULT([dentry_operations_revalidate], [
f1a05fa1
NB
117 AC_MSG_RESULT(yes)
118 AC_DEFINE(HAVE_D_REVALIDATE_NAMEIDATA, 1,
608f8749 119 [dops->d_revalidate() operation takes nameidata])
f1a05fa1
NB
120 ],[
121 AC_MSG_RESULT(no)
122 ])
123])
124
125dnl #
126dnl # 2.6.30 API change
127dnl # The 'struct dentry_operations' was constified in the dentry structure.
128dnl #
608f8749
BB
129AC_DEFUN([ZFS_AC_KERNEL_SRC_CONST_DENTRY_OPERATIONS], [
130 ZFS_LINUX_TEST_SRC([dentry_operations_const], [
f1a05fa1
NB
131 #include <linux/dcache.h>
132
133 const struct dentry_operations test_d_op = {
134 .d_revalidate = NULL,
135 };
136 ],[
137 struct dentry d __attribute__ ((unused));
f1a05fa1 138 d.d_op = &test_d_op;
f1a05fa1
NB
139 ])
140])
141
608f8749
BB
142AC_DEFUN([ZFS_AC_KERNEL_CONST_DENTRY_OPERATIONS], [
143 AC_MSG_CHECKING([whether dentry uses const struct dentry_operations])
144 ZFS_LINUX_TEST_RESULT([dentry_operations_const], [
f1a05fa1 145 AC_MSG_RESULT(yes)
608f8749
BB
146 AC_DEFINE(HAVE_CONST_DENTRY_OPERATIONS, 1,
147 [dentry uses const struct dentry_operations])
148 ],[
f1a05fa1
NB
149 AC_MSG_RESULT(no)
150 ])
151])
ee930353 152
608f8749
BB
153AC_DEFUN([ZFS_AC_KERNEL_SRC_DENTRY], [
154 ZFS_AC_KERNEL_SRC_D_MAKE_ROOT
155 ZFS_AC_KERNEL_SRC_D_OBTAIN_ALIAS
156 ZFS_AC_KERNEL_SRC_D_PRUNE_ALIASES
157 ZFS_AC_KERNEL_SRC_D_SET_D_OP
158 ZFS_AC_KERNEL_SRC_D_REVALIDATE_NAMEIDATA
159 ZFS_AC_KERNEL_SRC_CONST_DENTRY_OPERATIONS
608f8749
BB
160])
161
162AC_DEFUN([ZFS_AC_KERNEL_DENTRY], [
163 ZFS_AC_KERNEL_D_MAKE_ROOT
164 ZFS_AC_KERNEL_D_OBTAIN_ALIAS
165 ZFS_AC_KERNEL_D_PRUNE_ALIASES
166 ZFS_AC_KERNEL_D_SET_D_OP
167 ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA
168 ZFS_AC_KERNEL_CONST_DENTRY_OPERATIONS
608f8749 169])