2275 Commits

Author SHA1 Message Date
Zach Brown fab589700e Merge pull request #316 from versity/auke/remove_el7
el7 support removal
2026-06-22 15:07:14 -07:00
Auke Kok 99b87371c6 Drop KC_HAS_SET_ACL
RHEL7 was the only conditional user of this define, but since
support for that is removed, these can be dropped.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-08 11:53:16 -07:00
Auke Kok d929b06292 Collapse scoutfs_rename2 into scoutfs_rename_common.
scoutfs_rename2 was a thin shim that validated flags and forwarded
to scoutfs_rename_common. It existed because the old el7
RHEL_IOPS_WRAPPER path used a non-flag-taking .rename op alongside
.rename2; with that path gone there is only one rename method,
and the wrapper has no purpose.

Move the RENAME_NOREPLACE flag validation into scoutfs_rename_common
and point the directory inode_operations .rename slot at it directly.
The symlink inode_operations already used scoutfs_rename_common, so
this also makes symlink rename consistently reject unknown flags
instead of silently accepting them.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-08 11:27:46 -07:00
Auke Kok f4a28f1f04 Remove KC_STACK_TRACE_SAVE compat for el7.
el8 already provides stack_trace_save() and stack_trace_print()
in linux/stacktrace.h, so the legacy save_stack_trace/print_stack_trace
fallback inlines are dead. Drop the detection stanza and the inlines.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-08 11:27:33 -07:00
Auke Kok 56526e617f Remove KC_MM_VM_FAULT_T compat for el7.
el8 already provides vm_fault_t and vmf_error(), so the fallback
typedef and inline are dead. Drop the detection stanza and the
two function-signature ifdefs in data.c that switched between the
pre-v4.11 and modern fault handler prototypes.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 77b8d3cb7e Remove format-version 1 test.
Only el7 was capable of testing this formatversion. And there
no longer is el7 support. Remove the test.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 77156d695f Remove list_lru_walk_* el7 compat.
The original patch added compat for both el7 and higher kernels,
so this just drops the el7 parts.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 9f6d46ab66 Remove list_lru_shrink_count() and list_lru_shrink_walk() compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 0b669980d0 Remove .remap_pages method for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 99eb9c2c45 Remove kc_inode_dio_end compat for el7.
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 2ce496167c Remove __kernel_old_timeval compat for el7.
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok e7c8881ca4 Remove KC_XATTR_HANDLER_NAME compat for el7
Every kernel now supports .name instead of .prefix.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 505d7f8198 Remove el7 RHEL_IOPS_WRAPPER and KC_LINUX_AIO_KI_LEFT
These were kind of globbed together. This removes a large
amount of duplicate method definitions.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 32845f85c3 Remove .aio_read and .aio_write methods.
This removes two large duplicate code blocks.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 1af1040631 Remove KC_FILE_AOPS_READAHEAD compat for el7
Thanks to RH backporting this 5.x kernel feature, we can drop
a large chunk of code here.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok c81832a2c6 Remove MS_* (mount) flags for el7
These are obsolete, we won't need their backwards compatible
versions anymore.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 986efe1ce1 All workqueues are non-reentrant since el8
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 2944ea6424 remove generic_file_buffered_write backport for el7
We still need to keep KC_GENERIC_PERFORM_WRITE_KIOCB_IOV_ITER for
el8. So kc_generic_perform_write remains in place for now.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 16af2fe5ff Remove KC_CPU_NOTIFIER compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 99415423ae Remove timespec64 compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok c83e37c1c7 Remove kc_sock_create_kern compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok d611cf1368 Remove kc_get_sock/peername compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok a3b77c224f Remove KC_XATTR_STRUCT_XATTR_HANDLER compat for el7
This includes removal of a lot of double function definitions.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 1824980d29 Remove KC_BIO_BI_STATUS compat for el7
Unwrap the remaining stubs.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 166238abc7 Remove KC_BIO_BI_OPF compat for el7
Unwrap the remaining stubs everywhere used.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 84a3e73086 Remove memalloc_noio_save/_restore compath for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 7c0c1e6f38 Remove __percpu_counter_add compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 276034f89d Remove iversion.h compat for el7
For simplicity we just include the header here now that we
don't need it in the kernelcompat anymore.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 9102dc0136 Remove setattr_prepare() compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 94d06e65bc Remove KC_RB_TREE_AUGMENTED_COMPUTE_MAX compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok fcf94498fb Remove kc_posix_acl_valid compat.
This is a pre-el7 remnant, possibly from a really old rhel9
version, and was already effectively a stub.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 3d9a7918c4 Remove KC_FMODE_KABI_ITERATE compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 64587c505a Remove backing_dev_info compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 31c9ea40ce Remove shinker compat for el7
Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok e1a8b17e0c Remove posix_acl_create
We're now using __posix_acl_create instead.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Auke Kok 845b43d29c Remove use of d_materialise_unique
This is no longer used. We always d_splice_alias.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-06-05 09:49:45 -07:00
Zach Brown 9ea53a160f Merge pull request #320 from versity/auke/v1_32_release
v1.32 Release
2026-06-03 11:51:18 -07:00
Auke Kok cd73319d4d v1.32 Release
Finish the release notes for the 1.32 release.

Signed-off-by: Auke Kok <auke.kok@versity.com>
v1.32
2026-06-03 11:34:21 -07:00
Zach Brown 24aeb0175f Merge pull request #319 from versity/auke/nfs_setfacl
nfs setfacl + test (needs nfs-utils)
2026-06-03 10:06:17 -07:00
Auke Kok f8f661d79c Add basic NFS tests.
This depends on nfs-utils being installed on the host. Without it
it will skip, and count as a failure. It starts nfs-server and
does a bare exportfs.

- Tests basic read/write/stage/release/data wait.
- Tests setfacl/getfacl.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-05-28 12:01:29 -07:00
Zach Brown 07e90422ee Merge pull request #293 from versity/auke/data_prealloc_min
scaling prealloc.
2026-05-28 09:40:31 -07:00
Zach Brown 634ca720c9 Merge pull request #318 from versity/auke/timer_container_of
Use timer_container_of with fallback for from_timer -> el9.8 support
2026-05-28 09:38:19 -07:00
Auke Kok fa560016d4 Register .set_acl unconditionally to fix POSIX ACL writes over NFS
Scoutfs has supported posix ACLs through the xattr handler table,
which allowed NFS to fetch them through this sideband, which worked
for older kernels.

With recent changes we've pulled in .get_acl because the mainline
kernel is changing how ACL ops are called. But we still left .set_acl
unreachable. This meant that on el9.7 nfs clients could now reach
.get_acl, but still not set them.

With this change, we're finally exposing .set_acl consistently
across all el releases and allowing nfs clients to both get and set
posix ACLs.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-05-28 09:02:47 -07:00
Auke Kok 1f1e3e9c6a Use timer_container_of with fallback for from_timer
El9.8 backported the upstream v6.15.* rename of from_timer to
timer_container_of.  Switch the two callers in fence.c and recov.c
to the new style and add a simple kcompat define for older kernels.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-05-26 17:45:53 -04:00
Auke Kok 5a6523ecf4 Ramping up data preallocation
Ramps up data preallocation based on the number of online
blocks. This results in a simple 2<<n block allocation pattern
until n=11 (2048) - the default value of data_prealloc_blocks.

Signed-off-by: Auke Kok <auke.kok@versity.com>
2026-05-19 19:18:53 -07:00
Zach Brown fece0a9372 Merge pull request #310 from versity/zab/v1.31
v1.31 Release
2026-05-06 10:37:07 -07:00
Zach Brown aa432727f2 v1.31 Release
Finish the release notes for the 1.31 release.

Signed-off-by: Zach Brown <zab@versity.com>
v1.31
2026-05-05 14:29:18 -07:00
Zach Brown ceebadd139 Merge pull request #308 from versity/auke/totl-delta-repair
totl key repair
2026-05-05 13:05:57 -07:00
Zach Brown 4b4ddc9ded Merge pull request #298 from versity/auke/double_unlock_dw_truncate
Fix double unlock in scoutfs_setattr data_wait error path
2026-05-04 09:52:29 -07:00
Zach Brown 94d3ece590 Merge pull request #299 from versity/auke/cond_resched_block_free
Add cond_resched in block_free_work
2026-05-04 09:49:43 -07:00