diff options
author | youzhongyang <[email protected]> | 2022-11-08 13:28:56 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2022-11-08 10:28:56 -0800 |
commit | f224eddf922a33ca4b86d83148e9e6fa155fc290 (patch) | |
tree | fbd3d2703fc4c00f0431c6e261c41b037f3f63ab /config/kernel-iattr-vfsid.m4 | |
parent | 109731cd73c56c378b4c71732b9b9d3504a7a7e1 (diff) |
Support idmapped mount in user namespace
Linux 5.17 commit torvalds/linux@5dfbfe71e enables "the idmapping
infrastructure to support idmapped mounts of filesystems mounted
with an idmapping". Update the OpenZFS accordingly to improve the
idmapped mount support.
This pull request contains the following changes:
- xattr setter functions are fixed to take mnt_ns argument. Without
this, cp -p would fail for an idmapped mount in a user namespace.
- idmap_util is enhanced/fixed for its use in a user ns context.
- One test case added to test idmapped mount in a user ns.
Reviewed-by: Christian Brauner <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Youzhong Yang <[email protected]>
Closes #14097
Diffstat (limited to 'config/kernel-iattr-vfsid.m4')
-rw-r--r-- | config/kernel-iattr-vfsid.m4 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/config/kernel-iattr-vfsid.m4 b/config/kernel-iattr-vfsid.m4 new file mode 100644 index 000000000..75bc4613b --- /dev/null +++ b/config/kernel-iattr-vfsid.m4 @@ -0,0 +1,24 @@ +dnl # +dnl # 6.0 API change +dnl # struct iattr has two unions for the uid and gid +dnl # +AC_DEFUN([ZFS_AC_KERNEL_SRC_IATTR_VFSID], [ + ZFS_LINUX_TEST_SRC([iattr_vfsid], [ + #include <linux/fs.h> + ], [ + struct iattr ia; + ia.ia_vfsuid = (vfsuid_t){0}; + ia.ia_vfsgid = (vfsgid_t){0}; + ]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_IATTR_VFSID], [ + AC_MSG_CHECKING([whether iattr->ia_vfsuid and iattr->ia_vfsgid exist]) + ZFS_LINUX_TEST_RESULT([iattr_vfsid], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_IATTR_VFSID, 1, + [iattr->ia_vfsuid and iattr->ia_vfsgid exist]) + ],[ + AC_MSG_RESULT(no) + ]) +]) |