]> git.proxmox.com Git - mirror_zfs.git/blame - config/kernel-mkdir.m4
linux 6.3 compat: add another bdev_io_acct case
[mirror_zfs.git] / config / kernel-mkdir.m4
CommitLineData
e2a82961
CK
1dnl #
2dnl # Supported mkdir() interfaces checked newest to oldest.
3dnl #
4AC_DEFUN([ZFS_AC_KERNEL_SRC_MKDIR], [
5 dnl #
6 dnl # 5.12 API change
7 dnl # The struct user_namespace arg was added as the first argument to
8 dnl # mkdir()
9 dnl #
10 ZFS_LINUX_TEST_SRC([mkdir_user_namespace], [
11 #include <linux/fs.h>
12
13 int mkdir(struct user_namespace *userns,
14 struct inode *inode, struct dentry *dentry,
15 umode_t umode) { return 0; }
16
17 static const struct inode_operations
18 iops __attribute__ ((unused)) = {
19 .mkdir = mkdir,
20 };
21 ],[])
22
23 dnl #
24 dnl # 3.3 API change
25 dnl # The VFS .create, .mkdir and .mknod callbacks were updated to take a
26 dnl # umode_t type rather than an int. The expectation is that any backport
27 dnl # would also change all three prototypes. However, if it turns out that
28 dnl # some distribution doesn't backport the whole thing this could be
29 dnl # broken apart into three separate checks.
30 dnl #
31 ZFS_LINUX_TEST_SRC([inode_operations_mkdir], [
32 #include <linux/fs.h>
33
34 int mkdir(struct inode *inode, struct dentry *dentry,
35 umode_t umode) { return 0; }
36
37 static const struct inode_operations
38 iops __attribute__ ((unused)) = {
39 .mkdir = mkdir,
40 };
41 ],[])
42])
43
44AC_DEFUN([ZFS_AC_KERNEL_MKDIR], [
45 dnl #
46 dnl # 5.12 API change
47 dnl # The struct user_namespace arg was added as the first argument to
48 dnl # mkdir() of the iops structure.
49 dnl #
50 AC_MSG_CHECKING([whether iops->mkdir() takes struct user_namespace*])
51 ZFS_LINUX_TEST_RESULT([mkdir_user_namespace], [
52 AC_MSG_RESULT(yes)
53 AC_DEFINE(HAVE_IOPS_MKDIR_USERNS, 1,
54 [iops->mkdir() takes struct user_namespace*])
55 ],[
45588be2
BB
56 AC_MSG_RESULT(no)
57
e2a82961
CK
58 AC_MSG_CHECKING([whether iops->mkdir() takes umode_t])
59 ZFS_LINUX_TEST_RESULT([inode_operations_mkdir], [
60 AC_MSG_RESULT(yes)
61 AC_DEFINE(HAVE_MKDIR_UMODE_T, 1,
62 [iops->mkdir() takes umode_t])
63 ],[
64 ZFS_LINUX_TEST_ERROR([mkdir()])
65 ])
66 ])
67])