Applied, thanks!
Milos Nikic, le dim. 27 sept. 2026 20:57:32 -0700, a ecrit:
> It is only used as a convenience function in the ext2fs.h header, so move it
> there as an inline function. This enforces strict use of the externally
> visible libdiskfs transaction API (diskfs_journal_start_transaction, etc.)
> rather than relying on internal journal locks, improving encapsulation.
> ---
> ext2fs/ext2fs.h | 15 ++++++++++++++-
> ext2fs/journal.c | 16 ----------------
> 2 files changed, 14 insertions(+), 17 deletions(-)
>
> diff --git a/ext2fs/ext2fs.h b/ext2fs/ext2fs.h
> index 5bf20e645..9282e5417 100644
> --- a/ext2fs/ext2fs.h
> +++ b/ext2fs/ext2fs.h
> @@ -352,7 +352,6 @@ extern struct journal *ext2_journal;
> error_t
> journal_dirty_block (diskfs_transaction_t * txn, block_t fs_blocknr);
>
> -void journal_notify_block_changed (block_t block);
>
> void ext2_orphan_drop_ram_link (struct node *np);
>
> @@ -531,6 +530,20 @@ extern void sync_global (int wait);
> extern void alloc_sync (struct node *np);
>
> #if defined(__USE_EXTERN_INLINES) || defined(EXT2FS_DEFINE_EI)
> +EXT2FS_EI void
> +journal_notify_block_changed (block_t block)
> +{
> + if (!ext2_journal)
> + return;
> +
> + diskfs_transaction_t *txn = diskfs_journal_start_transaction ();
> + error_t err = journal_dirty_block (txn, block);
> + if (err)
> + JRNL_LOG_WARN ("Didn't manage to add a dirty block %u to the journal.
> (%s).",
> + block, strerror (err));
> + diskfs_journal_stop_transaction (txn);
> +}
> +
> /* Marks the global block BLOCK as being modified, and returns true if we
> think it may have been clean before (but we may not be sure). Note that
> this isn't enough to cause the block to be synced; you must call
> diff --git a/ext2fs/journal.c b/ext2fs/journal.c
> index 9eccabe20..fcd90f05e 100644
> --- a/ext2fs/journal.c
> +++ b/ext2fs/journal.c
> @@ -2743,22 +2743,6 @@ journal_store_read (block_t start_block, size_t
> length, void **buf,
> return err;
> }
>
> -void
> -journal_notify_block_changed (block_t block)
> -{
> - if (!ext2_journal)
> - return;
> -
> - JOURNAL_LOCK (ext2_journal);
> - diskfs_transaction_t *txn =
> - journal_join_transaction_locked (ext2_journal);
> - if (journal_dirty_block_locked (txn, block))
> - JRNL_LOG_WARN ("Didn't manage to add a dirty block %u to the journal.",
> - block);
> - diskfs_journal_stop_transaction_locked (ext2_journal, txn);
> - JOURNAL_UNLOCK (ext2_journal);
> -}
> -
> void
> diskfs_journal_shutdown (void)
> {
> --
> 2.55.0
>
--
Samuel
Créer une hiérarchie supplementaire pour remedier à un problème (?) de
dispersion est d'une logique digne des Shadocks.
* BT in: Guide du Cabaliste Usenet - La Cabale vote oui (les Shadocks aussi) *