aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/file.c
diff options
context:
space:
mode:
authorDeepa Dinamani <deepa.kernel@gmail.com>2016-09-14 10:48:04 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2016-09-27 21:06:21 -0400
commit078cd8279e659989b103359bb22373cc79445bde (patch)
tree923e3fe84d232cc9ba31481852ea1faf46f56fb6 /fs/ocfs2/file.c
parent2554c72edb81c97ae5307613dd0aee1ef8dd13ca (diff)
fs: Replace CURRENT_TIME with current_time() for inode timestamps
CURRENT_TIME macro is not appropriate for filesystems as it doesn't use the right granularity for filesystem timestamps. Use current_time() instead. CURRENT_TIME is also not y2038 safe. This is also in preparation for the patch that transitions vfs timestamps to use 64 bit time and hence make them y2038 safe. As part of the effort current_time() will be extended to do range checks. Hence, it is necessary for all file system timestamps to use current_time(). Also, current_time() will be transitioned along with vfs to be y2038 safe. Note that whenever a single call to current_time() is used to change timestamps in different inodes, it is because they share the same time granularity. Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Felipe Balbi <balbi@kernel.org> Acked-by: Steven Whitehouse <swhiteho@redhat.com> Acked-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> Acked-by: David Sterba <dsterba@suse.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ocfs2/file.c')
-rw-r--r--fs/ocfs2/file.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 4e7b0dc22450..9adcac9dfda1 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -253,7 +253,7 @@ int ocfs2_should_update_atime(struct inode *inode,
253 return 0; 253 return 0;
254 } 254 }
255 255
256 now = CURRENT_TIME; 256 now = current_time(inode);
257 if ((now.tv_sec - inode->i_atime.tv_sec <= osb->s_atime_quantum)) 257 if ((now.tv_sec - inode->i_atime.tv_sec <= osb->s_atime_quantum))
258 return 0; 258 return 0;
259 else 259 else
@@ -287,7 +287,7 @@ int ocfs2_update_inode_atime(struct inode *inode,
287 * have i_mutex to guard against concurrent changes to other 287 * have i_mutex to guard against concurrent changes to other
288 * inode fields. 288 * inode fields.
289 */ 289 */
290 inode->i_atime = CURRENT_TIME; 290 inode->i_atime = current_time(inode);
291 di->i_atime = cpu_to_le64(inode->i_atime.tv_sec); 291 di->i_atime = cpu_to_le64(inode->i_atime.tv_sec);
292 di->i_atime_nsec = cpu_to_le32(inode->i_atime.tv_nsec); 292 di->i_atime_nsec = cpu_to_le32(inode->i_atime.tv_nsec);
293 ocfs2_update_inode_fsync_trans(handle, inode, 0); 293 ocfs2_update_inode_fsync_trans(handle, inode, 0);
@@ -308,7 +308,7 @@ int ocfs2_set_inode_size(handle_t *handle,
308 308
309 i_size_write(inode, new_i_size); 309 i_size_write(inode, new_i_size);
310 inode->i_blocks = ocfs2_inode_sector_count(inode); 310 inode->i_blocks = ocfs2_inode_sector_count(inode);
311 inode->i_ctime = inode->i_mtime = CURRENT_TIME; 311 inode->i_ctime = inode->i_mtime = current_time(inode);
312 312
313 status = ocfs2_mark_inode_dirty(handle, inode, fe_bh); 313 status = ocfs2_mark_inode_dirty(handle, inode, fe_bh);
314 if (status < 0) { 314 if (status < 0) {
@@ -429,7 +429,7 @@ static int ocfs2_orphan_for_truncate(struct ocfs2_super *osb,
429 } 429 }
430 430
431 i_size_write(inode, new_i_size); 431 i_size_write(inode, new_i_size);
432 inode->i_ctime = inode->i_mtime = CURRENT_TIME; 432 inode->i_ctime = inode->i_mtime = current_time(inode);
433 433
434 di = (struct ocfs2_dinode *) fe_bh->b_data; 434 di = (struct ocfs2_dinode *) fe_bh->b_data;
435 di->i_size = cpu_to_le64(new_i_size); 435 di->i_size = cpu_to_le64(new_i_size);
@@ -840,7 +840,7 @@ static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from,
840 i_size_write(inode, abs_to); 840 i_size_write(inode, abs_to);
841 inode->i_blocks = ocfs2_inode_sector_count(inode); 841 inode->i_blocks = ocfs2_inode_sector_count(inode);
842 di->i_size = cpu_to_le64((u64)i_size_read(inode)); 842 di->i_size = cpu_to_le64((u64)i_size_read(inode));
843 inode->i_mtime = inode->i_ctime = CURRENT_TIME; 843 inode->i_mtime = inode->i_ctime = current_time(inode);
844 di->i_mtime = di->i_ctime = cpu_to_le64(inode->i_mtime.tv_sec); 844 di->i_mtime = di->i_ctime = cpu_to_le64(inode->i_mtime.tv_sec);
845 di->i_ctime_nsec = cpu_to_le32(inode->i_mtime.tv_nsec); 845 di->i_ctime_nsec = cpu_to_le32(inode->i_mtime.tv_nsec);
846 di->i_mtime_nsec = di->i_ctime_nsec; 846 di->i_mtime_nsec = di->i_ctime_nsec;
@@ -1936,7 +1936,7 @@ static int __ocfs2_change_file_space(struct file *file, struct inode *inode,
1936 if (change_size && i_size_read(inode) < size) 1936 if (change_size && i_size_read(inode) < size)
1937 i_size_write(inode, size); 1937 i_size_write(inode, size);
1938 1938
1939 inode->i_ctime = inode->i_mtime = CURRENT_TIME; 1939 inode->i_ctime = inode->i_mtime = current_time(inode);
1940 ret = ocfs2_mark_inode_dirty(handle, inode, di_bh); 1940 ret = ocfs2_mark_inode_dirty(handle, inode, di_bh);
1941 if (ret < 0) 1941 if (ret < 0)
1942 mlog_errno(ret); 1942 mlog_errno(ret);