Upstream v1.34 added iomap-based buffered and direct I/O, splitting
kmod/src/file.c into a KC_USE_IOMAP_FOR_IO arm and an #else arm, each
with its own scoutfs_file_read_iter. Patch 0002 now hooks both. EL8
and EL9 kernels lack copy_page_to_iter_nofault (v6.4+) and compile the
#else arm, so the shipped kmods are unaffected either way, but hooking
only that arm would make READ notifications a silent no-op on any
newer kernel that later enters the build matrix.
Patch 0001 and 0003 are unchanged apart from context offsets; the
ioctl ABI is untouched (SCOUTFS_IOC_READ_NOTIFY stays nr 26 -- v1.34
did not renumber).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ioctl number collision: upstream v1.32 claimed _IOC nr 25 for
SCOUTFS_IOC_INJECT_TOTL_DELTA, which the v1.30-based series used for
SCOUTFS_IOC_READ_NOTIFY. Moved the notify ioctl to nr 26 in both
kmod/src/ioctl.h and the notifyd Go daemon (utils/notifyd/main.go).
Patches 0002 (hook sites) and 0003 (daemon) otherwise unchanged.
base: v1.32
Upstream released v1.30 (ad65116 on 2026-04-16 per the scoutfs tag).
The CI's daily cron picked the new tag and failed because our patch
series targeted v1.29.
Rebase was clean: scoutfs v1.30's diff against v1.29 touches btree,
forest, quota, totl, triggers, wkic, and xattr — none of the files
our series modifies. No daemon, Makefile, or packaging changes;
this is a pure retag.
git checkout v1.30
git am --3way <the three existing patches> # clean apply
git format-patch v1.30..HEAD
Base bumped: v1.29 -> v1.30.
Two-patch series that layers an observer-only file-access
notification stream onto scoutfs. See README.md for the design
summary and rebase workflow.
Base: scoutfs v1.29