Files
mirror_zfs/config/kernel-rename.m4
T

83 lines
2.3 KiB
Plaintext
Raw Normal View History

dnl # SPDX-License-Identifier: CDDL-1.0
2021-03-20 00:00:59 -04:00
AC_DEFUN([ZFS_AC_KERNEL_SRC_RENAME], [
dnl #
dnl # 4.9 API change,
2019-06-22 10:35:11 +10:00
dnl #
dnl # iops->rename2() merged into iops->rename(), and iops->rename() now
dnl # wants flags.
2021-03-20 00:00:59 -04:00
dnl #
ZFS_LINUX_TEST_SRC([inode_operations_rename_flags], [
#include <linux/fs.h>
static int rename_fn(struct inode *sip, struct dentry *sdp,
struct inode *tip, struct dentry *tdp,
unsigned int flags) { return 0; }
static const struct inode_operations
iops __attribute__ ((unused)) = {
.rename = rename_fn,
};
2019-10-01 12:50:34 -07:00
],[])
2021-03-20 00:00:59 -04:00
dnl #
dnl # 5.12 API change,
dnl #
2019-06-22 10:35:11 +10:00
dnl # Linux 5.12 introduced passing struct user_namespace* as the first
dnl # argument of the rename() and other inode_operations members.
2021-03-20 00:00:59 -04:00
dnl #
ZFS_LINUX_TEST_SRC([inode_operations_rename_userns], [
#include <linux/fs.h>
static int rename_fn(struct user_namespace *user_ns, struct inode *sip,
2021-03-20 00:00:59 -04:00
struct dentry *sdp, struct inode *tip, struct dentry *tdp,
unsigned int flags) { return 0; }
static const struct inode_operations
iops __attribute__ ((unused)) = {
.rename = rename_fn,
};
],[])
dnl #
dnl # 6.3 API change - the first arg is now struct mnt_idmap*
dnl #
ZFS_LINUX_TEST_SRC([inode_operations_rename_mnt_idmap], [
#include <linux/fs.h>
static int rename_fn(struct mnt_idmap *idmap, struct inode *sip,
struct dentry *sdp, struct inode *tip, struct dentry *tdp,
unsigned int flags) { return 0; }
static const struct inode_operations
iops __attribute__ ((unused)) = {
.rename = rename_fn,
};
],[])
2019-10-01 12:50:34 -07:00
])
2021-03-20 00:00:59 -04:00
AC_DEFUN([ZFS_AC_KERNEL_RENAME], [
AC_MSG_CHECKING([whether iops->rename() takes struct mnt_idmap*])
ZFS_LINUX_TEST_RESULT([inode_operations_rename_mnt_idmap], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_IOPS_RENAME_IDMAP, 1,
[iops->rename() takes struct mnt_idmap*])
],[
2024-08-05 23:22:50 +10:00
AC_MSG_RESULT(no)
AC_MSG_CHECKING([whether iops->rename() takes struct user_namespace*])
ZFS_LINUX_TEST_RESULT([inode_operations_rename_userns], [
2021-03-20 00:00:59 -04:00
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_IOPS_RENAME_USERNS, 1,
[iops->rename() takes struct user_namespace*])
2021-03-20 00:00:59 -04:00
],[
AC_MSG_RESULT(no)
2019-06-22 10:35:11 +10:00
2024-08-18 11:37:31 +10:00
AC_MSG_CHECKING([whether iops->rename() wants flags])
ZFS_LINUX_TEST_RESULT([inode_operations_rename_flags], [
2019-06-22 10:35:11 +10:00
AC_MSG_RESULT(yes)
2024-08-18 11:37:31 +10:00
AC_DEFINE(HAVE_RENAME_WANTS_FLAGS, 1,
[iops->rename() wants flags])
2019-06-22 10:35:11 +10:00
],[
AC_MSG_RESULT(no)
])
2021-03-20 00:00:59 -04:00
])
])
])