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  1f77b5887c93992bb56c3e1562b6b9140fe7b340 (commit)
       via  3e3544862ca7554ad6181b723cbc937d923f25c6 (commit)
      from  5dee2b909591af735b982b3aff241c47cab11c1d (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 1f77b5887c93992bb56c3e1562b6b9140fe7b340
Author: Milos Nikic <[email protected]>
Date:   Sun Oct 4 13:17:43 2026 -0700

    ext2fs: Make journal pre-notify.
    
    Previously journal was notified after the fact (block has already been
    changed).
    This patch changes this, journal is now notified ahead of time that a
    block is about to be altered, and journal is also notified when we are
    done editing.
    
    This helps keep the main filesystem free of torn writes and makes
    our journal behave much more closely to the journal in ext4.
    
    Function names have been changed to reflect ext4 journal functions
    (journal_get_write_access() to pre-notify the journal and
    journal_mark_dirty() to tell the journal we are done modifying.)
    
    journal_record_freed_blocks () is now taking transaction handle instead
    of trying to find out which txn is running inside. This aligns it more
    to the other journaling functions.
    
    A new function, journal_thread_transaction (), returns the transaction of
    the calling thread's open handle.  The edit sites use it to get the
    transaction they pass to journal_get_write_access () and
    journal_mark_dirty ().  While the journal is live every metadata edit
    must run inside a handle, so the result is never NULL there, and the
    handle keeps the transaction T_RUNNING or T_LOCKED until it is released;
    both are asserted.  It returns NULL only when there is no journal, or the
    journal is shutting down and no handle was opened, and callers then skip
    journaling.  Unlike the old lookup in journal_record_freed_blocks (), it
    never falls back to j_running_transaction for a thread without a handle.
    
    journal_get_write_access is a silent no-op when the system is
    unjournaled.
    Message-ID: <[email protected]>

commit 3e3544862ca7554ad6181b723cbc937d923f25c6
Author: Milos Nikic <[email protected]>
Date:   Sun Oct 4 13:17:42 2026 -0700

    ext2fs: Delegate metadata sync to WAL and fix shutdown hang.
    
    When journaling is active, forcing metadata to the physical
    platter via sync_global in diskfs_set_hypermetadata fights the Write-Ahead 
Log
    and artificially floods the journal's intercept cache with rushed pager 
writes.
    
    This patch skips sync_global when the journal is present, instead using
    diskfs_journal_set_sync() to guarantee durability through the WAL.
    
    Relying on lazy pager evictions, however, exposes a race during unmount.
    If a pageout completes after diskfs_journal_shutdown sets j_must_exit,
    journal_notify_blocks_written_locked previously returned immediately.
    This left jb_is_flushing set, causing journal_quiesce_checkpoints to wait
    on j_flush_wait forever.
    
    The notification path is updated to properly release flushing claims while
    j_must_exit is set, without altering the checkpoint list that the quiesce
    routine is actively walking.
    Message-ID: <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 ext2fs/balloc.c   |  10 +++-
 ext2fs/ext2fs.h   |  72 +++++++++++++++++++----------
 ext2fs/getblk.c   |   8 ++++
 ext2fs/hyper.c    |  32 +++++++++----
 ext2fs/ialloc.c   |  11 ++++-
 ext2fs/inode.c    |  20 ++++++--
 ext2fs/journal.c  | 133 +++++++++++++++++++++++++++++++++++++++++++-----------
 ext2fs/journal.h  |   2 +-
 ext2fs/orphan.c   |  66 ++++++++++++---------------
 ext2fs/truncate.c |   7 +++
 ext2fs/xattr.c    |   9 ++++
 11 files changed, 265 insertions(+), 105 deletions(-)


hooks/post-receive
-- 
Hurd

Reply via email to