]>
Commit | Line | Data |
---|---|---|
608f8749 BB |
1 | dnl # |
2 | dnl # 3.4.0 API change | |
3 | dnl # Added d_make_root() to replace previous d_alloc_root() function. | |
4 | dnl # | |
5 | AC_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 | ||
13 | AC_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 | ||
24 | dnl # | |
25 | dnl # 2.6.28 API change | |
26 | dnl # Added d_obtain_alias() helper function. | |
27 | dnl # | |
28 | AC_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 | ||
36 | AC_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) | |
608f8749 | 41 | ], [ |
066e8252 | 42 | ZFS_LINUX_TEST_ERROR([d_obtain_alias()]) |
608f8749 BB |
43 | ]) |
44 | ]) | |
45 | ||
46 | dnl # | |
47 | dnl # 2.6.12 API change | |
48 | dnl # d_prune_aliases() helper function available. | |
49 | dnl # | |
50 | AC_DEFUN([ZFS_AC_KERNEL_SRC_D_PRUNE_ALIASES], [ | |
51 | ZFS_LINUX_TEST_SRC([d_prune_aliases], [ | |
52 | #include <linux/dcache.h> | |
53 | ], [ | |
54 | struct inode *ip = NULL; | |
55 | d_prune_aliases(ip); | |
56 | ]) | |
57 | ]) | |
58 | ||
59 | AC_DEFUN([ZFS_AC_KERNEL_D_PRUNE_ALIASES], [ | |
60 | AC_MSG_CHECKING([whether d_prune_aliases() is available]) | |
61 | ZFS_LINUX_TEST_RESULT_SYMBOL([d_prune_aliases], | |
62 | [d_prune_aliases], [fs/dcache.c], [ | |
63 | AC_MSG_RESULT(yes) | |
64 | AC_DEFINE(HAVE_D_PRUNE_ALIASES, 1, | |
65 | [d_prune_aliases() is available]) | |
66 | ], [ | |
066e8252 | 67 | ZFS_LINUX_TEST_ERROR([d_prune_aliases()]) |
608f8749 BB |
68 | ]) |
69 | ]) | |
70 | ||
71 | dnl # | |
72 | dnl # 2.6.38 API change | |
73 | dnl # Added d_set_d_op() helper function. | |
74 | dnl # | |
75 | AC_DEFUN([ZFS_AC_KERNEL_SRC_D_SET_D_OP], [ | |
76 | ZFS_LINUX_TEST_SRC([d_set_d_op], [ | |
77 | #include <linux/dcache.h> | |
78 | ], [ | |
79 | d_set_d_op(NULL, NULL); | |
80 | ]) | |
81 | ]) | |
82 | ||
83 | AC_DEFUN([ZFS_AC_KERNEL_D_SET_D_OP], [ | |
84 | AC_MSG_CHECKING([whether d_set_d_op() is available]) | |
85 | ZFS_LINUX_TEST_RESULT_SYMBOL([d_set_d_op], | |
86 | [d_set_d_op], [fs/dcache.c], [ | |
87 | AC_MSG_RESULT(yes) | |
608f8749 | 88 | ], [ |
066e8252 | 89 | ZFS_LINUX_TEST_ERROR([d_set_d_op]) |
608f8749 BB |
90 | ]) |
91 | ]) | |
92 | ||
f1a05fa1 NB |
93 | dnl # |
94 | dnl # 3.6 API change | |
95 | dnl # | |
608f8749 BB |
96 | AC_DEFUN([ZFS_AC_KERNEL_SRC_D_REVALIDATE_NAMEIDATA], [ |
97 | ZFS_LINUX_TEST_SRC([dentry_operations_revalidate], [ | |
f1a05fa1 | 98 | #include <linux/dcache.h> |
e921f650 | 99 | #include <linux/sched.h> |
c38367c7 | 100 | |
a41d0b29 | 101 | static int revalidate (struct dentry *dentry, |
c38367c7 RY |
102 | struct nameidata *nidata) { return 0; } |
103 | ||
104 | static const struct dentry_operations | |
105 | dops __attribute__ ((unused)) = { | |
106 | .d_revalidate = revalidate, | |
f1a05fa1 | 107 | }; |
608f8749 BB |
108 | ],[]) |
109 | ]) | |
110 | ||
111 | AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA], [ | |
112 | AC_MSG_CHECKING([whether dops->d_revalidate() takes struct nameidata]) | |
113 | ZFS_LINUX_TEST_RESULT([dentry_operations_revalidate], [ | |
f1a05fa1 NB |
114 | AC_MSG_RESULT(yes) |
115 | AC_DEFINE(HAVE_D_REVALIDATE_NAMEIDATA, 1, | |
608f8749 | 116 | [dops->d_revalidate() operation takes nameidata]) |
f1a05fa1 NB |
117 | ],[ |
118 | AC_MSG_RESULT(no) | |
119 | ]) | |
120 | ]) | |
121 | ||
122 | dnl # | |
123 | dnl # 2.6.30 API change | |
124 | dnl # The 'struct dentry_operations' was constified in the dentry structure. | |
125 | dnl # | |
608f8749 BB |
126 | AC_DEFUN([ZFS_AC_KERNEL_SRC_CONST_DENTRY_OPERATIONS], [ |
127 | ZFS_LINUX_TEST_SRC([dentry_operations_const], [ | |
f1a05fa1 NB |
128 | #include <linux/dcache.h> |
129 | ||
130 | const struct dentry_operations test_d_op = { | |
131 | .d_revalidate = NULL, | |
132 | }; | |
133 | ],[ | |
134 | struct dentry d __attribute__ ((unused)); | |
f1a05fa1 | 135 | d.d_op = &test_d_op; |
f1a05fa1 NB |
136 | ]) |
137 | ]) | |
138 | ||
608f8749 BB |
139 | AC_DEFUN([ZFS_AC_KERNEL_CONST_DENTRY_OPERATIONS], [ |
140 | AC_MSG_CHECKING([whether dentry uses const struct dentry_operations]) | |
141 | ZFS_LINUX_TEST_RESULT([dentry_operations_const], [ | |
f1a05fa1 | 142 | AC_MSG_RESULT(yes) |
608f8749 BB |
143 | AC_DEFINE(HAVE_CONST_DENTRY_OPERATIONS, 1, |
144 | [dentry uses const struct dentry_operations]) | |
145 | ],[ | |
066e8252 | 146 | ZFS_LINUX_TEST_ERROR([const dentry_operations]) |
f1a05fa1 NB |
147 | ]) |
148 | ]) | |
ee930353 | 149 | |
7ae3f8dc BB |
150 | dnl # |
151 | dnl # 2.6.38 API change | |
152 | dnl # Added sb->s_d_op default dentry_operations member | |
153 | dnl # | |
154 | AC_DEFUN([ZFS_AC_KERNEL_SRC_S_D_OP], [ | |
155 | ZFS_LINUX_TEST_SRC([super_block_s_d_op], [ | |
156 | #include <linux/fs.h> | |
157 | ],[ | |
158 | struct super_block sb __attribute__ ((unused)); | |
159 | sb.s_d_op = NULL; | |
160 | ]) | |
161 | ]) | |
162 | ||
163 | AC_DEFUN([ZFS_AC_KERNEL_S_D_OP], [ | |
164 | AC_MSG_CHECKING([whether super_block has s_d_op]) | |
165 | ZFS_LINUX_TEST_RESULT([super_block_s_d_op], [ | |
166 | AC_MSG_RESULT(yes) | |
167 | ], [ | |
168 | ZFS_LINUX_TEST_ERROR([super_block s_d_op]) | |
169 | ]) | |
170 | ]) | |
171 | ||
608f8749 BB |
172 | AC_DEFUN([ZFS_AC_KERNEL_SRC_DENTRY], [ |
173 | ZFS_AC_KERNEL_SRC_D_MAKE_ROOT | |
174 | ZFS_AC_KERNEL_SRC_D_OBTAIN_ALIAS | |
175 | ZFS_AC_KERNEL_SRC_D_PRUNE_ALIASES | |
176 | ZFS_AC_KERNEL_SRC_D_SET_D_OP | |
177 | ZFS_AC_KERNEL_SRC_D_REVALIDATE_NAMEIDATA | |
178 | ZFS_AC_KERNEL_SRC_CONST_DENTRY_OPERATIONS | |
7ae3f8dc | 179 | ZFS_AC_KERNEL_SRC_S_D_OP |
608f8749 BB |
180 | ]) |
181 | ||
182 | AC_DEFUN([ZFS_AC_KERNEL_DENTRY], [ | |
183 | ZFS_AC_KERNEL_D_MAKE_ROOT | |
184 | ZFS_AC_KERNEL_D_OBTAIN_ALIAS | |
185 | ZFS_AC_KERNEL_D_PRUNE_ALIASES | |
186 | ZFS_AC_KERNEL_D_SET_D_OP | |
187 | ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA | |
188 | ZFS_AC_KERNEL_CONST_DENTRY_OPERATIONS | |
7ae3f8dc | 189 | ZFS_AC_KERNEL_S_D_OP |
608f8749 | 190 | ]) |