]> git.proxmox.com Git - mirror_zfs.git/blob - config/kernel-rename.m4
Revert "Reduce dbuf_find() lock contention"
[mirror_zfs.git] / config / kernel-rename.m4
1 AC_DEFUN([ZFS_AC_KERNEL_SRC_RENAME], [
2 dnl #
3 dnl # 4.9 API change,
4 dnl # iops->rename2() merged into iops->rename(), and iops->rename() now wants
5 dnl # flags.
6 dnl #
7 ZFS_LINUX_TEST_SRC([inode_operations_rename_flags], [
8 #include <linux/fs.h>
9 int rename_fn(struct inode *sip, struct dentry *sdp,
10 struct inode *tip, struct dentry *tdp,
11 unsigned int flags) { return 0; }
12
13 static const struct inode_operations
14 iops __attribute__ ((unused)) = {
15 .rename = rename_fn,
16 };
17 ],[])
18
19 dnl #
20 dnl # 5.12 API change,
21 dnl #
22 dnl # Linux 5.12 introduced passing struct user_namespace* as the first argument
23 dnl # of the rename() and other inode_operations members.
24 dnl #
25 ZFS_LINUX_TEST_SRC([inode_operations_rename_userns], [
26 #include <linux/fs.h>
27 int rename_fn(struct user_namespace *user_ns, struct inode *sip,
28 struct dentry *sdp, struct inode *tip, struct dentry *tdp,
29 unsigned int flags) { return 0; }
30
31 static const struct inode_operations
32 iops __attribute__ ((unused)) = {
33 .rename = rename_fn,
34 };
35 ],[])
36 ])
37
38 AC_DEFUN([ZFS_AC_KERNEL_RENAME], [
39 AC_MSG_CHECKING([whether iops->rename() takes struct user_namespace*])
40 ZFS_LINUX_TEST_RESULT([inode_operations_rename_userns], [
41 AC_MSG_RESULT(yes)
42 AC_DEFINE(HAVE_IOPS_RENAME_USERNS, 1,
43 [iops->rename() takes struct user_namespace*])
44 ],[
45 AC_MSG_RESULT(no)
46
47 AC_MSG_CHECKING([whether iop->rename() wants flags])
48 ZFS_LINUX_TEST_RESULT([inode_operations_rename_flags], [
49 AC_MSG_RESULT(yes)
50 AC_DEFINE(HAVE_RENAME_WANTS_FLAGS, 1,
51 [iops->rename() wants flags])
52 ],[
53 AC_MSG_RESULT(no)
54 ])
55 ])
56 ])