Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux: bump minimum kernel version to 4.18 #16479

Closed
wants to merge 104 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
8304a0e
META: set Linux minimum version to 4.18
robn Aug 2, 2024
0be9702
config: remove checks with unused defines
robn Aug 3, 2024
3ba72e2
config: remove HAVE_1ARG_BIO_END_IO_T
robn Aug 3, 2024
dd31672
config: remove HAVE_BIO_BVEC_ITER
robn Aug 3, 2024
83dba29
config: remove HAVE_CLEAR_INODE and HAVE_EVICT_INODE
robn Aug 3, 2024
a950e94
config: remove HAVE_DENTRY_D_U_ALIASES
robn Aug 3, 2024
7fcbbdc
config: remove HAVE_DIRTY_INODE_WITH_FLAGS
robn Aug 3, 2024
5a52a81
config: remove HAVE_D_MAKE_ROOT
robn Aug 3, 2024
75d6507
config: remove HAVE_D_PRUNE_ALIASES
robn Aug 3, 2024
40adc6d
config: remove HAVE_ENCODE_FH_WITH_INODE
robn Aug 3, 2024
c485bc2
config: remove HAVE_FALLOC_FL_ZERO_RANGE
robn Aug 3, 2024
ddd2e4b
config: remove HAVE_FILE_DENTRY
robn Aug 3, 2024
8ed3207
config: remove HAVE_FILE_INODE
robn Aug 3, 2024
9568247
config: remove HAVE_FSYNC_RANGE
robn Aug 3, 2024
9ce0cf2
config: remove HAVE_GENERIC_WRITE_CHECKS_KIOCB
robn Aug 3, 2024
2049af9
config: remove HAVE_INODE_SET_FLAGS
robn Aug 3, 2024
6da0f6c
config: remove HAVE_IO_SCHEDULE_TIMEOUT
robn Aug 3, 2024
2431f21
config: remove HAVE_KERNEL_STRSCPY
robn Aug 3, 2024
95bb30f
config: remove HAVE_KERNEL_TIMER_LIST_FLAGS
robn Aug 3, 2024
881fdcc
config: remove HAVE_LINUX_BLK_CGROUP_HEADER
robn Aug 3, 2024
e4443c5
config: remove HAVE_PERCPU_COUNTER_INIT_WITH_GFP
robn Aug 3, 2024
2a64d0f
config: remove HAVE___POSIX_ACL_CHMOD
robn Aug 3, 2024
5292634
config: remove HAVE_POSIX_ACL_RELEASE and HAVE_POSIX_ACL_RELEASE_GPL_…
robn Aug 3, 2024
4ca1d62
config: remove HAVE_SET_ACL
robn Aug 3, 2024
f7e3ab4
config: remove HAVE_SET_CACHED_ACL_USABLE
robn Aug 3, 2024
7de9689
config: remove HAVE_SPLIT_SHRINKER_CALLBACK and HAVE_SINGLE_SHRINKER_…
robn Aug 4, 2024
6d04222
config: remove HAVE_USER_NS_COMMON_INUM
robn Aug 4, 2024
f9b8715
config: remove HAVE_VFS_RW_ITERATE
robn Aug 4, 2024
2453b28
config: remove SHRINK_CONTROL_HAS_NID
robn Aug 4, 2024
995c3ef
config: remove HAVE_VFS_DIRECT_IO_IOVEC
robn Aug 4, 2024
9a76e16
config: remove HAVE_3ARGS_BDI_SETUP_AND_REGISTER
robn Aug 4, 2024
244f0e4
config: remove HAVE_3ARGS_VFS_GETATTR
robn Aug 4, 2024
f6b3e56
config: remove HAVE_D_REVALIDATE_NAMEIDATA
robn Aug 4, 2024
535efaf
config: remove HAVE_FOLLOW_LINK_NAMEIDATA
robn Aug 4, 2024
7200a33
config: remove HAVE_LSEEK_EXECUTE
robn Aug 4, 2024
5997876
config: remove HAVE_PUT_LINK_NAMEIDATA
robn Aug 4, 2024
356bff3
config: remove HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET
robn Aug 4, 2024
7340d45
config: remove HAVE_WAIT_ON_BIT_ACTION
robn Aug 4, 2024
fd09dde
config: remove HAVE_XATTR_(GET|SET|LIST)_DENTRY
robn Aug 5, 2024
2d15efa
config: remove HAVE_NEW_SYNC_READ
robn Aug 5, 2024
56da150
config: remove HAVE_VFS_FILE_OPERATIONS_EXTEND
robn Aug 5, 2024
2ed849e
config: remove HAVE_RENAME2_OPERATIONS_WRAPPER
robn Aug 5, 2024
05ef3de
config: remove HAVE_GET_LINK_COOKIE
robn Aug 5, 2024
f85a8c0
config: remove HAVE_1ARG_SUBMIT_BIO
robn Aug 16, 2024
5ecdda1
config: remove HAVE_BIO_BI_OPF
robn Aug 16, 2024
5153cdf
config: remove HAVE_BLK_QUEUE_WRITE_CACHE/HAVE_BLK_QUEUE_FLUSH
robn Aug 16, 2024
615305b
config: remove HAVE_CPU_HOTPLUG
robn Aug 16, 2024
7104684
config: remove HAVE_CURRENT_TIME
robn Aug 16, 2024
85cdc53
config: remove HAVE_GROUP_INFO_GID
robn Aug 16, 2024
9487093
config: remove HAVE_IN_COMPAT_SYSCALL
robn Aug 16, 2024
57fea13
config: remove HAVE_INODE_LOCK_SHARED
robn Aug 16, 2024
c623b7a
config: remove HAVE_KERNEL_GET_ACL_HANDLE_CACHE
robn Aug 16, 2024
e632491
config: remove HAVE_POSIX_ACL_VALID_WITH_NS
robn Aug 16, 2024
8fb4fae
config: remove HAVE_(GET|PUT)_LINK_DELAYED
robn Aug 16, 2024
2e4f9c1
config: remove HAVE_REQ_OP_* and HAVE_REQ_*
robn Aug 16, 2024
dc61abe
config: remove HAVE_SUPER_USER_NS
robn Aug 16, 2024
affc931
config: remove HAVE_VFS_COPY_FILE_RANGE
robn Aug 16, 2024
69c27d9
config: remove HAVE_VFS_ITERATE/HAVE_VFS_ITERATE_SHARED
robn Aug 16, 2024
d68442e
config: remove HAVE_XATTR_HANDLER_NAME
robn Aug 16, 2024
e062a79
config: remove HAVE_XATTR_(GET|SET|LIST)_HANDLER
robn Aug 16, 2024
cf99e58
config: remove HAVE_XATTR_LIST_SIMPLE
robn Aug 16, 2024
2c62b39
config: remove HAVE_XATTR_GET_DENTRY_INODE
robn Aug 16, 2024
70343d7
config: remove ZFS_GLOBAL_NODE_PAGE_STATE
robn Aug 16, 2024
2485797
config: remove HAVE_FILE_AIO_FSYNC
robn Aug 16, 2024
64bbe0f
config: remove HAVE_GENERIC_SETXATTR
robn Aug 16, 2024
04b0893
config: remove HAVE_RENAME2
robn Aug 18, 2024
2222070
config: remove HAVE_BLK_QUEUE_SECDISCARD
robn Aug 18, 2024
523e81c
config: remove HAVE_[24]ARGS_VFS_GETATTR
robn Aug 24, 2024
930a79d
config: remove HAVE_ACL_REFCOUNT
robn Aug 24, 2024
100c857
config: remove HAVE_BIO_BI_STATUS and bio error compat
robn Aug 24, 2024
04dbf0e
config: remove HAVE_FILE_FADVISE
robn Aug 24, 2024
78b6416
config: remove HAVE_FILEMAP_RANGE_HAS_PAGE
robn Aug 24, 2024
69edf7a
config: remove HAVE_INODE_SET_IVERSION
robn Aug 24, 2024
c8fa294
config: remove HAVE_INODE_TIMESPEC64_TIMES
robn Aug 24, 2024
f3128ff
config: remove HAVE_KERNEL_(READ|WRITE)_PPOS
robn Aug 24, 2024
83ac81a
config: remove HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST
robn Aug 24, 2024
c154a1a
config: remove HAVE_KERNEL_TIMER_SETUP
robn Aug 24, 2024
24d71b8
config: remove HAVE_KMEM_CACHE_CREATE_USERCOPY
robn Aug 24, 2024
eb27a0a
config: remove HAVE_KTIME_GET_COARSE_REAL_TS64
robn Aug 24, 2024
1e32ac8
config: remove HAVE_KTIME_GET_RAW_TS64
robn Aug 24, 2024
e27a721
config: remove HAVE_KVMALLOC
robn Aug 24, 2024
173790b
config: remove HAVE_PERCPU_COUNTER_ADD_BATCH
robn Aug 24, 2024
5d4d68d
config: remove HAVE_SCHED_SIGNAL_HEADER
robn Aug 24, 2024
53fb401
config: remove HAVE_SET_SPECIAL_STATE
robn Aug 24, 2024
05b7a25
config: remove HAVE_SIGNAL_STOP
robn Aug 24, 2024
b0ffd1d
config: remove HAVE_SUPER_SETUP_BDI_NAME
robn Aug 24, 2024
6afd42b
config: remove HAVE_TMPFILE
robn Aug 24, 2024
85e1c02
config: remove HAVE_WAIT_QUEUE_*
robn Aug 24, 2024
802991f
config: remove ZFS_GLOBAL_ZONE_PAGE_STATE
robn Aug 24, 2024
fffe9da
config: remove ZFS_GLOBAL_ZONE_PAGE_STATE and ZFS_ENUM_* generation
robn Aug 24, 2024
ff653f7
config: remove HAVE_BLK_QUEUE_FLAG_*
robn Aug 24, 2024
a9ec182
config: remove HAVE_BLK_MQ
robn Aug 24, 2024
896dabc
linux/zvol_os: convert END_IO macro to inline function
robn Aug 24, 2024
c26135e
config: remove HAVE_GENERIC_READLINK
robn Aug 24, 2024
40b6615
config: remove HAVE_VFSMOUNT_IOPS_GETATTR
robn Aug 24, 2024
ad79395
config: remove HAVE_GENERIC_IO_ACCT_3ARG
robn Aug 24, 2024
d87f595
config: rework ZFS_GENHD_FL_*
robn Aug 24, 2024
01a28d3
config: remove HAVE_BIO_SET_DEV
robn Aug 24, 2024
7a779cd
config: remove HAVE_HAS_CAPABILITY
robn Aug 25, 2024
fb55a80
config: remove HAVE_MODE_LOOKUP_BDEV
robn Aug 26, 2024
54c830e
config: remove test for unused s_d_op
robn Aug 26, 2024
2467b0f
config: remove HAVE_GET_USER_PAGES_*
robn Sep 18, 2024
32bc1a9
config: fix various bits of missing output
robn Aug 5, 2024
902fe76
config: fix page_mapping test
robn Sep 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion META
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Release-Tags: relext
License: CDDL
Author: OpenZFS
Linux-Maximum: 6.10
Linux-Minimum: 3.10
Linux-Minimum: 4.18
72 changes: 0 additions & 72 deletions config/intlmacosx.m4

This file was deleted.

215 changes: 2 additions & 213 deletions config/kernel-acl.m4
Original file line number Diff line number Diff line change
@@ -1,112 +1,3 @@
dnl #
dnl # Check if posix_acl_release can be used from a ZFS_META_LICENSED
dnl # module. The is_owner_or_cap macro was replaced by
dnl # inode_owner_or_capable
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_POSIX_ACL_RELEASE], [
ZFS_LINUX_TEST_SRC([posix_acl_release], [
#include <linux/cred.h>
#include <linux/fs.h>
#include <linux/posix_acl.h>
], [
struct posix_acl *tmp = posix_acl_alloc(1, 0);
posix_acl_release(tmp);
], [], [ZFS_META_LICENSE])
])

AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_RELEASE], [
AC_MSG_CHECKING([whether posix_acl_release() is available])
ZFS_LINUX_TEST_RESULT([posix_acl_release], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_POSIX_ACL_RELEASE, 1,
[posix_acl_release() is available])

AC_MSG_CHECKING([whether posix_acl_release() is GPL-only])
ZFS_LINUX_TEST_RESULT([posix_acl_release_license], [
AC_MSG_RESULT(no)
],[
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_POSIX_ACL_RELEASE_GPL_ONLY, 1,
[posix_acl_release() is GPL-only])
])
],[
AC_MSG_RESULT(no)
])
])

dnl #
dnl # 3.14 API change,
dnl # set_cached_acl() and forget_cached_acl() changed from inline to
dnl # EXPORT_SYMBOL. In the former case, they may not be usable because of
dnl # posix_acl_release. In the latter case, we can always use them.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_SET_CACHED_ACL_USABLE], [
ZFS_LINUX_TEST_SRC([set_cached_acl], [
#include <linux/cred.h>
#include <linux/fs.h>
#include <linux/posix_acl.h>
], [
struct inode *ip = NULL;
struct posix_acl *acl = posix_acl_alloc(1, 0);
set_cached_acl(ip, ACL_TYPE_ACCESS, acl);
forget_cached_acl(ip, ACL_TYPE_ACCESS);
], [], [ZFS_META_LICENSE])
])

AC_DEFUN([ZFS_AC_KERNEL_SET_CACHED_ACL_USABLE], [
AC_MSG_CHECKING([whether set_cached_acl() is usable])
ZFS_LINUX_TEST_RESULT([set_cached_acl_license], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_SET_CACHED_ACL_USABLE, 1,
[set_cached_acl() is usable])
],[
AC_MSG_RESULT(no)
])
])

dnl #
dnl # 3.1 API change,
dnl # posix_acl_chmod() was added as the preferred interface.
dnl #
dnl # 3.14 API change,
dnl # posix_acl_chmod() was changed to __posix_acl_chmod()
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_POSIX_ACL_CHMOD], [
ZFS_LINUX_TEST_SRC([posix_acl_chmod], [
#include <linux/fs.h>
#include <linux/posix_acl.h>
],[
posix_acl_chmod(NULL, 0, 0)
])

ZFS_LINUX_TEST_SRC([__posix_acl_chmod], [
#include <linux/fs.h>
#include <linux/posix_acl.h>
],[
__posix_acl_chmod(NULL, 0, 0)
])
])

AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_CHMOD], [
AC_MSG_CHECKING([whether __posix_acl_chmod exists])
ZFS_LINUX_TEST_RESULT([__posix_acl_chmod], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE___POSIX_ACL_CHMOD, 1,
[__posix_acl_chmod() exists])
],[
AC_MSG_RESULT(no)

AC_MSG_CHECKING([whether posix_acl_chmod exists])
ZFS_LINUX_TEST_RESULT([posix_acl_chmod], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_POSIX_ACL_CHMOD, 1,
[posix_acl_chmod() exists])
],[
ZFS_LINUX_TEST_ERROR([posix_acl_chmod()])
])
])
])

dnl #
dnl # 3.1 API change,
dnl # posix_acl_equiv_mode now wants an umode_t instead of a mode_t
Expand All @@ -130,34 +21,6 @@ AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_EQUIV_MODE_WANTS_UMODE_T], [
])
])

dnl #
dnl # 4.8 API change,
dnl # The function posix_acl_valid now must be passed a namespace.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_POSIX_ACL_VALID_WITH_NS], [
ZFS_LINUX_TEST_SRC([posix_acl_valid_with_ns], [
#include <linux/fs.h>
#include <linux/posix_acl.h>
],[
struct user_namespace *user_ns = NULL;
const struct posix_acl *acl = NULL;
int error;

error = posix_acl_valid(user_ns, acl);
])
])

AC_DEFUN([ZFS_AC_KERNEL_POSIX_ACL_VALID_WITH_NS], [
AC_MSG_CHECKING([whether posix_acl_valid() wants user namespace])
ZFS_LINUX_TEST_RESULT([posix_acl_valid_with_ns], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_POSIX_ACL_VALID_WITH_NS, 1,
[posix_acl_valid() wants user namespace])
],[
AC_MSG_RESULT(no)
])
])

dnl #
dnl # 3.1 API change,
dnl # Check if inode_operations contains the function get_acl
Expand Down Expand Up @@ -226,9 +89,6 @@ AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL], [
])
])

dnl #
dnl # 3.14 API change,
dnl # Check if inode_operations contains the function set_acl
dnl #
dnl # 5.12 API change,
dnl # set_acl() added a user_namespace* parameter first
Expand Down Expand Up @@ -290,106 +150,35 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_SET_ACL], [
])

AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_SET_ACL], [
AC_MSG_CHECKING([whether iops->set_acl() exists])
AC_MSG_CHECKING([whether iops->set_acl() with 4 args exists])
ZFS_LINUX_TEST_RESULT([inode_operations_set_acl_userns], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_SET_ACL, 1, [iops->set_acl() exists])
AC_DEFINE(HAVE_SET_ACL_USERNS, 1, [iops->set_acl() takes 4 args])
],[
ZFS_LINUX_TEST_RESULT([inode_operations_set_acl_mnt_idmap_dentry], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_SET_ACL, 1, [iops->set_acl() exists])
AC_DEFINE(HAVE_SET_ACL_IDMAP_DENTRY, 1,
[iops->set_acl() takes 4 args, arg1 is struct mnt_idmap *])
],[
ZFS_LINUX_TEST_RESULT([inode_operations_set_acl_userns_dentry], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_SET_ACL, 1, [iops->set_acl() exists])
AC_DEFINE(HAVE_SET_ACL_USERNS_DENTRY_ARG2, 1,
[iops->set_acl() takes 4 args, arg2 is struct dentry *])
],[
ZFS_LINUX_TEST_RESULT([inode_operations_set_acl], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_SET_ACL, 1, [iops->set_acl() exists, takes 3 args])
],[
ZFS_LINUX_REQUIRE_API([i_op->set_acl()], [3.14])
])
AC_MSG_RESULT(no)
])
])
])
])

dnl #
dnl # 4.7 API change,
dnl # The kernel get_acl will now check cache before calling i_op->get_acl and
dnl # do set_cached_acl after that, so i_op->get_acl don't need to do that
dnl # anymore.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_GET_ACL_HANDLE_CACHE], [
ZFS_LINUX_TEST_SRC([get_acl_handle_cache], [
#include <linux/fs.h>
],[
void *sentinel __attribute__ ((unused)) =
uncached_acl_sentinel(NULL);
])
])

AC_DEFUN([ZFS_AC_KERNEL_GET_ACL_HANDLE_CACHE], [
AC_MSG_CHECKING([whether uncached_acl_sentinel() exists])
ZFS_LINUX_TEST_RESULT([get_acl_handle_cache], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_KERNEL_GET_ACL_HANDLE_CACHE, 1,
[uncached_acl_sentinel() exists])
],[
AC_MSG_RESULT(no)
])
])

dnl #
dnl # 4.16 kernel: check if struct posix_acl acl.a_refcount is a refcount_t.
dnl # It's an atomic_t on older kernels.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_ACL_HAS_REFCOUNT], [
ZFS_LINUX_TEST_SRC([acl_refcount], [
#include <linux/backing-dev.h>
#include <linux/refcount.h>
#include <linux/posix_acl.h>
],[
struct posix_acl acl;
refcount_t *r __attribute__ ((unused)) = &acl.a_refcount;
])
])

AC_DEFUN([ZFS_AC_KERNEL_ACL_HAS_REFCOUNT], [
AC_MSG_CHECKING([whether posix_acl has refcount_t])
ZFS_LINUX_TEST_RESULT([acl_refcount], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ACL_REFCOUNT, 1, [posix_acl has refcount_t])
],[
AC_MSG_RESULT(no)
])
])

AC_DEFUN([ZFS_AC_KERNEL_SRC_ACL], [
ZFS_AC_KERNEL_SRC_POSIX_ACL_RELEASE
ZFS_AC_KERNEL_SRC_SET_CACHED_ACL_USABLE
ZFS_AC_KERNEL_SRC_POSIX_ACL_CHMOD
ZFS_AC_KERNEL_SRC_POSIX_ACL_EQUIV_MODE_WANTS_UMODE_T
ZFS_AC_KERNEL_SRC_POSIX_ACL_VALID_WITH_NS
ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_GET_ACL
ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_SET_ACL
ZFS_AC_KERNEL_SRC_GET_ACL_HANDLE_CACHE
ZFS_AC_KERNEL_SRC_ACL_HAS_REFCOUNT
])

AC_DEFUN([ZFS_AC_KERNEL_ACL], [
ZFS_AC_KERNEL_POSIX_ACL_RELEASE
ZFS_AC_KERNEL_SET_CACHED_ACL_USABLE
ZFS_AC_KERNEL_POSIX_ACL_CHMOD
ZFS_AC_KERNEL_POSIX_ACL_EQUIV_MODE_WANTS_UMODE_T
ZFS_AC_KERNEL_POSIX_ACL_VALID_WITH_NS
ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL
ZFS_AC_KERNEL_INODE_OPERATIONS_SET_ACL
ZFS_AC_KERNEL_GET_ACL_HANDLE_CACHE
ZFS_AC_KERNEL_ACL_HAS_REFCOUNT
])
23 changes: 0 additions & 23 deletions config/kernel-aio-fsync.m4

This file was deleted.

Loading
Loading