ext4: use 64-bit timestamps for mmp_time
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. Reviewed-by: Andreas Dilger <adilger@dilger.ca> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
a4d2aadca1
commit
af123b3718
|
@ -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);
|
||||
|
@ -241,7 +241,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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue