Re: [PATCH v2 11/12] ext4: simplify i_state checks in __ext4_update_other_inode_time()

Jan Kara
2021-01-11T15:12:19Z

On Fri 08-01-21 23:59:02, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
>
> Since I_DIRTY_TIME and I_DIRTY_INODE are mutually exclusive in i_state,
> there's no need to check for I_DIRTY_TIME && !I_DIRTY_INODE. Just check
> for I_DIRTY_TIME.
>
> Signed-off-by: Eric Biggers <ebiggers@google.com>

Looks good to me. Feel free to add:

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

Honza

> ---
> fs/ext4/inode.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index 4cc6c7834312f..00bca5c18eb65 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -4962,14 +4962,12 @@ static void __ext4_update_other_inode_time(struct super_block *sb,
> return;
>
> if ((inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW |
> - I_DIRTY_INODE)) ||
> - ((inode->i_state & I_DIRTY_TIME) == 0))
> + I_DIRTY_TIME)) != I_DIRTY_TIME)
> return;
>
> spin_lock(&inode->i_lock);
> - if (((inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW |
> - I_DIRTY_INODE)) == 0) &&
> - (inode->i_state & I_DIRTY_TIME)) {
> + if ((inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW |
> + I_DIRTY_TIME)) == I_DIRTY_TIME) {
> struct ext4_inode_info *ei = EXT4_I(inode);
>
> inode->i_state &= ~I_DIRTY_TIME;
> --
> 2.30.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR