On Wed 20-06-18 17:32:59, Arnd Bergmann wrote:
> The mmp_time field is 64 bits wide, which is good, but calling
> get_seconds() results in a 32-bit value on 32-bit architectures. Using
> ktime_get_real_seconds() instead returns 64 bits everywhere.
> 
> Signed-off-by: Arnd Bergmann <[email protected]>

Looks good.

Reviewed-by: Jan Kara <[email protected]>

                                                                Honza

> ---
>  fs/ext4/mmp.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
> index 27b9a76a0dfa..39da4eb48361 100644
> --- a/fs/ext4/mmp.c
> +++ b/fs/ext4/mmp.c
> @@ -147,7 +147,7 @@ static int kmmpd(void *data)
>  
>       mmp_block = le64_to_cpu(es->s_mmp_block);
>       mmp = (struct mmp_struct *)(bh->b_data);
> -     mmp->mmp_time = cpu_to_le64(get_seconds());
> +     mmp->mmp_time = cpu_to_le64(ktime_get_real_seconds());
>       /*
>        * Start with the higher mmp_check_interval and reduce it if
>        * the MMP block is being updated on time.
> @@ -165,7 +165,7 @@ static int kmmpd(void *data)
>                       seq = 1;
>  
>               mmp->mmp_seq = cpu_to_le32(seq);
> -             mmp->mmp_time = cpu_to_le64(get_seconds());
> +             mmp->mmp_time = cpu_to_le64(ktime_get_real_seconds());
>               last_update_time = jiffies;
>  
>               retval = write_mmp_block(sb, bh);
> @@ -244,7 +244,7 @@ static int kmmpd(void *data)
>        * Unmount seems to be clean.
>        */
>       mmp->mmp_seq = cpu_to_le32(EXT4_MMP_SEQ_CLEAN);
> -     mmp->mmp_time = cpu_to_le64(get_seconds());
> +     mmp->mmp_time = cpu_to_le64(ktime_get_real_seconds());
>  
>       retval = write_mmp_block(sb, bh);
>  
> -- 
> 2.9.0
> 
> 
-- 
Jan Kara <[email protected]>
SUSE Labs, CR
_______________________________________________
Y2038 mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/y2038

Reply via email to