Re: [PATCH v2] Updated locking documentation for transaction_t

From: Jan Kara
Date: Tue Mar 19 2019 - 04:33:46 EST


On Mon 18-03-19 19:42:37, Alexander Lochmann wrote:
> We used LockDoc to derive locking rules for each member
> of struct transaction_t.
> Based on those results, we extended the existing documentation
> by more members of struct inode, and updated the existing
> documentation.
>
> Signed-off-by: Alexander Lochmann <alexander.lochmann@xxxxxxxxxxxxxx>
> Signed-off-by: Horst Schirmeier <horst.schirmeier@xxxxxxxxxxxxxx>

Thanks! You can add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> include/linux/jbd2.h | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
> index 0f919d5fe84f..72f689746340 100644
> --- a/include/linux/jbd2.h
> +++ b/include/linux/jbd2.h
> @@ -534,6 +534,7 @@ struct transaction_chp_stats_s {
> * The transaction keeps track of all of the buffers modified by a
> * running transaction, and all of the buffers committed but not yet
> * flushed to home for finished transactions.
> + * (Locking Documentation improved by LockDoc)
> */
>
> /*
> @@ -585,7 +586,8 @@ struct transaction_s
> } t_state;
>
> /*
> - * Where in the log does this transaction's commit start? [no locking]
> + * Where in the log does this transaction's commit start?
> + * [journal_t.j_state_lock]
> */
> unsigned long t_log_start;
>
> @@ -647,17 +649,17 @@ struct transaction_s
> unsigned long t_max_wait;
>
> /*
> - * When transaction started
> + * When transaction started [journal_t.j_state_lock]
> */
> unsigned long t_start;
>
> /*
> - * When commit was requested
> + * When commit was requested [journal_t.j_state_lock]
> */
> unsigned long t_requested;
>
> /*
> - * Checkpointing stats [j_checkpoint_sem]
> + * Checkpointing stats [journal_t.j_list_lock]
> */
> struct transaction_chp_stats_s t_chp_stats;
>
> --
> 2.20.1
>
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR