mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-01 05:49:35 +03:00
91d5ac85c0
In Linux 5.12, the filesystem API was modified to support ipmapped
mounts by adding a "struct user_namespace *" parameter to a number
functions and VFS handlers. This change adds the needed autoconf
macros to detect the new interfaces and updates the code appropriately.
This change does not add support for idmapped mounts, instead it
preserves the existing behavior by passing the initial user namespace
where needed. A subsequent commit will be required to add support
for idmapped mounted.
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Co-authored-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #11712
(cherry picked from commit e2a8296131
)
Signed-off-by: Jonathon Fernyhough <jonathon@m2x.dev>
53 lines
1.5 KiB
Plaintext
53 lines
1.5 KiB
Plaintext
AC_DEFUN([ZFS_AC_KERNEL_SRC_SETATTR_PREPARE], [
|
|
dnl #
|
|
dnl # 4.9 API change
|
|
dnl # The inode_change_ok() function has been renamed setattr_prepare()
|
|
dnl # and updated to take a dentry rather than an inode.
|
|
dnl #
|
|
ZFS_LINUX_TEST_SRC([setattr_prepare], [
|
|
#include <linux/fs.h>
|
|
], [
|
|
struct dentry *dentry = NULL;
|
|
struct iattr *attr = NULL;
|
|
int error __attribute__ ((unused)) =
|
|
setattr_prepare(dentry, attr);
|
|
])
|
|
|
|
dnl #
|
|
dnl # 5.12 API change
|
|
dnl # The setattr_prepare() function has been changed to accept a new argument
|
|
dnl # for struct user_namespace*
|
|
dnl #
|
|
ZFS_LINUX_TEST_SRC([setattr_prepare_userns], [
|
|
#include <linux/fs.h>
|
|
], [
|
|
struct dentry *dentry = NULL;
|
|
struct iattr *attr = NULL;
|
|
struct user_namespace *userns = NULL;
|
|
int error __attribute__ ((unused)) =
|
|
setattr_prepare(userns, dentry, attr);
|
|
])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SETATTR_PREPARE], [
|
|
AC_MSG_CHECKING([whether setattr_prepare() is available and accepts struct user_namespace*])
|
|
ZFS_LINUX_TEST_RESULT_SYMBOL([setattr_prepare_userns],
|
|
[setattr_prepare], [fs/attr.c], [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_SETATTR_PREPARE_USERNS, 1,
|
|
[setattr_prepare() accepts user_namespace])
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
|
|
AC_MSG_CHECKING([whether setattr_prepare() is available, doesn't accept user_namespace])
|
|
ZFS_LINUX_TEST_RESULT_SYMBOL([setattr_prepare],
|
|
[setattr_prepare], [fs/attr.c], [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_SETATTR_PREPARE_NO_USERNS, 1,
|
|
[setattr_prepare() is available, doesn't accept user_namespace])
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
])
|