Re: [PATCH] ext2fs: Add documentation to journal_drain_deferred_blocks

Samuel Thibault <[email protected]>
Newsgroups gmane.os.hurd.bugs
Organization I am not organized
Message-ID <ahv8B4n235Mz5Pmg@end>
Applied, thanks!

Milos Nikic, le sam. 30 mai 2026 21:11:58 -0700, a ecrit:
> ---
>  ext2fs/journal.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/ext2fs/journal.c b/ext2fs/journal.c
> index e456eafc2..c50c742f8 100644
> --- a/ext2fs/journal.c
> +++ b/ext2fs/journal.c
> @@ -1127,7 +1127,20 @@ journal_stop_transaction_locked (journal_t *journal,
>      }
>  }
>  
> -/* Must strictly be called OUTSIDE the journal lock */
> +/**
> + * Drains the thread-local deferred block queue into a new transaction.
> + * When a thread is forced to execute a synchronous checkpoint (which locks the
> + * global libdiskfs node-cache), any memory mutations triggered by the VFS flush
> + * are intercepted and stored in a thread-local queue to prevent a recursive
> + * deadlock against the journal lock.
> + * This function "sweeps" those intercepted blocks by explicitly starting a
> + * new transaction. The act of starting the transaction automatically injects
> + * the deferred blocks into the new transaction's map (via the internal
> + * diskfs_journal_start_transaction_locked logic). We then immediately stop
> + * the transaction to allow the normal journal commit pipeline to process them.
> + *
> + * Must strictly be called OUTSIDE the journal lock.
> + */
>  static void
>  journal_drain_deferred_blocks (void)
>  {
> @@ -1571,7 +1584,7 @@ diskfs_journal_start_transaction_locked (journal_t *journal)
>    /* THE SWEEP: Safely inject deferred blocks into our brand new transaction */
>    if (deferred_count > 0)
>      {
> -      /* Copy to local var and reset count immediately to prevent any 
> +      /* Copy to local var and reset count immediately to prevent any
>           impossible recursion loops during dirty_block */
>        int count = deferred_count;
>        deferred_count = 0;
> -- 
> 2.54.0
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.