lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 11 Feb 2021 10:37:54 +0100
From:   Jan Kara <jack@...e.cz>
To:     Alexander Lochmann <alexander.lochmann@...dortmund.de>
Cc:     Horst Schirmeier <horst.schirmeier@...dortmund.de>,
        Theodore Ts'o <tytso@....edu>, Jan Kara <jack@...e.com>,
        linux-ext4@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] Updated locking documentation for journal_t

On Wed 10-02-21 10:57:38, Alexander Lochmann wrote:
> Some members of transaction_t are allowed to be read without
> any lock being held if consistency doesn't matter.
> Based on LockDoc's findings, we extended the locking
> documentation of those members.
> Each one of them is marked with a short comment:
> "no lock for quick racy checks".
> 
> Signed-off-by: Alexander Lochmann <alexander.lochmann@...dortmund.de>
> Signed-off-by: Horst Schirmeier <horst.schirmeier@...dortmund.de>

This patch looks good. You can add:

Reviewed-by: Jan Kara <jack@...e.cz>

								Honza

> ---
>  include/linux/jbd2.h | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
> index 18f77d9b1745..4dca33a063dd 100644
> --- a/include/linux/jbd2.h
> +++ b/include/linux/jbd2.h
> @@ -768,7 +768,7 @@ enum passtype {PASS_SCAN, PASS_REVOKE, PASS_REPLAY};
>  struct journal_s
>  {
>  	/**
> -	 * @j_flags: General journaling state flags [j_state_lock]
> +	 * @j_flags: General journaling state flags [j_state_lock, no lock for quick racy checks]
>  	 */
>  	unsigned long		j_flags;
>  
> @@ -808,7 +808,7 @@ struct journal_s
>  	/**
>  	 * @j_barrier_count:
>  	 *
> -	 * Number of processes waiting to create a barrier lock [j_state_lock]
> +	 * Number of processes waiting to create a barrier lock [j_state_lock, no lock for quick racy checks]
>  	 */
>  	int			j_barrier_count;
>  
> @@ -821,7 +821,7 @@ struct journal_s
>  	 * @j_running_transaction:
>  	 *
>  	 * Transactions: The current running transaction...
> -	 * [j_state_lock] [caller holding open handle]
> +	 * [j_state_lock, no lock for quick racy checks] [caller holding open handle]
>  	 */
>  	transaction_t		*j_running_transaction;
>  
> @@ -1033,7 +1033,7 @@ struct journal_s
>  	 * @j_commit_sequence:
>  	 *
>  	 * Sequence number of the most recently committed transaction
> -	 * [j_state_lock].
> +	 * [j_state_lock, no lock for quick racy checks].
>  	 */
>  	tid_t			j_commit_sequence;
>  
> @@ -1041,7 +1041,7 @@ struct journal_s
>  	 * @j_commit_request:
>  	 *
>  	 * Sequence number of the most recent transaction wanting commit
> -	 * [j_state_lock]
> +	 * [j_state_lock, no lock for quick racy checks]
>  	 */
>  	tid_t			j_commit_request;
>  
> -- 
> 2.20.1
> 
-- 
Jan Kara <jack@...e.com>
SUSE Labs, CR

Powered by blists - more mailing lists