This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".
The branch, master has been updated
via 370c37aaee375c90e1f8547c3736cf5b184b2878 (commit)
from 6b8b18b3a227acff76fa92cb4c3a3f6b46684168 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 370c37aaee375c90e1f8547c3736cf5b184b2878
Author: Milos Nikic <[email protected]>
Date: Tue Sep 8 08:56:39 2026 -0700
ext2fs: Rework JBD2 checkpointing, fix cache coherency, and eliminate
deadlocks
This patch completely overhauls the ext2fs journal checkpointing
architecture and fixes several severe race conditions with the Mach VM pager
during system shutdown and heavy I/O load.
1. Lock-Safe Active Checkpointer
Previously, the journal attempted to reclaim space by recursively calling
back into the VFS via `journal_sync_everything`. Under heavy load (e.g.,
compiling), this caused lock inversions and thread exhaustion. Checkpointing
is now a fully self-sufficient process that streams in-memory WAL shadow
buffers directly to the metal, completely bypassing the VFS node cache.
2. Lifeboat Cache Coherency (Page Boundary Corruption)
Fixed a critical bug where file data intercepted by the Lifeboat
mechanism was silently overwritten by stale shadow metadata from older
checkpoints. Lifeboat flushes now utilize the global notification system
(`journal_notify_blocks_written_locked`) to mark blocks as written across
all active transactions, fixing file corruption at 4KB page boundaries.
3. Shutdown Consistency & Ghost Inodes
Unlinked files (nlink=0) were previously left with unset `dtime` because
their weak pager references were not dropped before the final journal
commit. `diskfs_shutdown_pager` now explicitly drops these references to
trigger synchronous `diskfs_drop_node` calls.
4. `startup_dosync` Integration
Injected `diskfs_journal_shutdown` into `libdiskfs/init-startup.c` to
ensure the root filesystem journal is properly quiesced (Head 0) before the
microkernel forces the disk into read-only mode during `sudo halt`.
-----------------------------------------------------------------------
Summary of changes:
ext2fs/ext2fs.h | 7 -
ext2fs/journal.c | 686 +++++++++++++++++++++++++++++++++--------------
ext2fs/journal.h | 7 -
ext2fs/pager.c | 104 ++++---
libdiskfs/diskfs.h | 8 +
libdiskfs/init-startup.c | 1 +
libdiskfs/journal.c | 9 +-
libdiskfs/shutdown.c | 1 +
8 files changed, 580 insertions(+), 243 deletions(-)
hooks/post-receive
--
Hurd