fs: ocfs2: Replace CURRENT_TIME macro
PATCH 1/1 fs: ocfs2: Replace CURRENT_TIME macro
CURRENT_TIME is not y2038 safe.
Use y2038 safe ktime_get_real_seconds() here for timestamps. struct heartbeat_block's hb_seq and deletetion time are already 64 bits wide and accommodate times beyond y2038.
Also use y2038 safe ktime_get_real_ts64() for on disk inode timestamps.
These are also wide enough to accommodate time64_t.
Signed-off-by Deepa Dinamani <[email protected]>
Reviewed-by Arnd Bergmann <[email protected]>
Cc Joel Becker <[email protected]>
Cc ocfs2-devel at oss.oracle.com
--- fs/ocfs2/cluster/heartbeat.c | 2 +- fs/ocfs2/inode.c | 2 +- fs/ocfs2/namei.c | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-)
fs/ocfs2/cluster/heartbeat.c +1 -1
@@ -741,7 +741,7 @@ static inline void o2hb_prepare_block(struct o2hb_region *reg, hb_block = (struct o2hb_disk_heartbeat_block *)slot->ds_raw_block;memset (hb_block,0 , reg->hr_block_bytes);/* TODO: time stuff */ - cputime =CURRENT_TIME .tv_sec; + cputime =ktime_get_real_seconds ();if (!cputime) cputime =1 ;
fs/ocfs2/inode.c +1 -1
@@ -703,7 +703,7 @@ static int ocfs2_remove_inode(struct inode *inode, goto bail_commit; } - di->i_dtime =cpu_to_le64 (CURRENT_TIME .tv_sec); + di->i_dtime =cpu_to_le64 (ktime_get_real_seconds ()); di->i_flags &=cpu_to_le32 (~(OCFS2_VALID_FL |OCFS2_ORPHANED_FL ));ocfs2_journal_dirty (handle, di_bh);
fs/ocfs2/namei.c +4 -2
@@ -516,6 +516,7 @@ static int __ocfs2_mknod_locked(struct inode *dir,struct ocfs2_extent_list *fel;u16 feat;struct ocfs2_inode_info *oi =OCFS2_I (inode); +struct timespec64 ts; *new_fe_bh =NULL ;
@@ -564,10 +565,11 @@ static int __ocfs2_mknod_locked(struct inode *dir, fe->i_last_eb_blk =0 ;strcpy (fe->i_signature,OCFS2_INODE_SIGNATURE ); fe->i_flags |=cpu_to_le32 (OCFS2_VALID_FL ); +ktime_get_real_ts64 (&ts); fe->i_atime = fe->i_ctime = fe->i_mtime = -cpu_to_le64 (CURRENT_TIME .tv_sec); +cpu_to_le64 (ts.tv_sec); fe->i_mtime_nsec = fe->i_ctime_nsec = fe->i_atime_nsec = -cpu_to_le32 (CURRENT_TIME .tv_nsec); +cpu_to_le32 (ts.tv_nsec); fe->i_dtime =0 ;/*
Signature · 1 line
2.7.4