Re: [PATCH 2/6] ext4: use 64-bit timestamps for mmp_time
From: Jan Kara
Date: Fri Jun 22 2018 - 03:38:29 EST
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 <arnd@xxxxxxxx>
Looks good.
Reviewed-by: Jan Kara <jack@xxxxxxx>
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 <jack@xxxxxxxx>
SUSE Labs, CR