aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fat
diff options
context:
space:
mode:
authorDeepa Dinamani <deepa.kernel@gmail.com>2016-09-14 10:48:05 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2016-09-27 21:06:22 -0400
commit02027d42c3f747945f19111d3da2092ed2148ac8 (patch)
tree1eac59f95ba905fb1d1fe5a53a792145e8e9c267 /fs/fat
parent078cd8279e659989b103359bb22373cc79445bde (diff)
fs: Replace CURRENT_TIME_SEC with current_time() for inode timestamps
CURRENT_TIME_SEC is not y2038 safe. current_time() will be transitioned to use 64 bit time along with vfs in a separate patch. There is no plan to transistion CURRENT_TIME_SEC to use y2038 safe time interfaces. current_time() will also be extended to use superblock range checking parameters when range checking is introduced. This works because alloc_super() fills in the the s_time_gran in super block to NSEC_PER_SEC. Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com> Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fat')
-rw-r--r--fs/fat/dir.c2
-rw-r--r--fs/fat/file.c4
-rw-r--r--fs/fat/inode.c2
-rw-r--r--fs/fat/namei_msdos.c12
-rw-r--r--fs/fat/namei_vfat.c10
5 files changed, 15 insertions, 15 deletions
diff --git a/fs/fat/dir.c b/fs/fat/dir.c
index 663e428596c6..81cecbe6d7cf 100644
--- a/fs/fat/dir.c
+++ b/fs/fat/dir.c
@@ -1071,7 +1071,7 @@ int fat_remove_entries(struct inode *dir, struct fat_slot_info *sinfo)
1071 } 1071 }
1072 } 1072 }
1073 1073
1074 dir->i_mtime = dir->i_atime = CURRENT_TIME_SEC; 1074 dir->i_mtime = dir->i_atime = current_time(dir);
1075 if (IS_DIRSYNC(dir)) 1075 if (IS_DIRSYNC(dir))
1076 (void)fat_sync_inode(dir); 1076 (void)fat_sync_inode(dir);
1077 else 1077 else
diff --git a/fs/fat/file.c b/fs/fat/file.c
index f70185668832..811bbe0ab7a3 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -194,7 +194,7 @@ static int fat_cont_expand(struct inode *inode, loff_t size)
194 if (err) 194 if (err)
195 goto out; 195 goto out;
196 196
197 inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC; 197 inode->i_ctime = inode->i_mtime = current_time(inode);
198 mark_inode_dirty(inode); 198 mark_inode_dirty(inode);
199 if (IS_SYNC(inode)) { 199 if (IS_SYNC(inode)) {
200 int err2; 200 int err2;
@@ -297,7 +297,7 @@ static int fat_free(struct inode *inode, int skip)
297 MSDOS_I(inode)->i_logstart = 0; 297 MSDOS_I(inode)->i_logstart = 0;
298 } 298 }
299 MSDOS_I(inode)->i_attrs |= ATTR_ARCH; 299 MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
300 inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC; 300 inode->i_ctime = inode->i_mtime = current_time(inode);
301 if (wait) { 301 if (wait) {
302 err = fat_sync_inode(inode); 302 err = fat_sync_inode(inode);
303 if (err) { 303 if (err) {
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index da04c0298fab..338d2f73eb29 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -237,7 +237,7 @@ static int fat_write_end(struct file *file, struct address_space *mapping,
237 if (err < len) 237 if (err < len)
238 fat_write_failed(mapping, pos + len); 238 fat_write_failed(mapping, pos + len);
239 if (!(err < 0) && !(MSDOS_I(inode)->i_attrs & ATTR_ARCH)) { 239 if (!(err < 0) && !(MSDOS_I(inode)->i_attrs & ATTR_ARCH)) {
240 inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC; 240 inode->i_mtime = inode->i_ctime = current_time(inode);
241 MSDOS_I(inode)->i_attrs |= ATTR_ARCH; 241 MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
242 mark_inode_dirty(inode); 242 mark_inode_dirty(inode);
243 } 243 }
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c
index 664655b2c55f..ccd9f83f9bb6 100644
--- a/fs/fat/namei_msdos.c
+++ b/fs/fat/namei_msdos.c
@@ -283,7 +283,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode,
283 goto out; 283 goto out;
284 } 284 }
285 285
286 ts = CURRENT_TIME_SEC; 286 ts = current_time(dir);
287 err = msdos_add_entry(dir, msdos_name, 0, is_hid, 0, &ts, &sinfo); 287 err = msdos_add_entry(dir, msdos_name, 0, is_hid, 0, &ts, &sinfo);
288 if (err) 288 if (err)
289 goto out; 289 goto out;
@@ -330,7 +330,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
330 drop_nlink(dir); 330 drop_nlink(dir);
331 331
332 clear_nlink(inode); 332 clear_nlink(inode);
333 inode->i_ctime = CURRENT_TIME_SEC; 333 inode->i_ctime = current_time(inode);
334 fat_detach(inode); 334 fat_detach(inode);
335out: 335out:
336 mutex_unlock(&MSDOS_SB(sb)->s_lock); 336 mutex_unlock(&MSDOS_SB(sb)->s_lock);
@@ -364,7 +364,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
364 goto out; 364 goto out;
365 } 365 }
366 366
367 ts = CURRENT_TIME_SEC; 367 ts = current_time(dir);
368 cluster = fat_alloc_new_dir(dir, &ts); 368 cluster = fat_alloc_new_dir(dir, &ts);
369 if (cluster < 0) { 369 if (cluster < 0) {
370 err = cluster; 370 err = cluster;
@@ -416,7 +416,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry)
416 if (err) 416 if (err)
417 goto out; 417 goto out;
418 clear_nlink(inode); 418 clear_nlink(inode);
419 inode->i_ctime = CURRENT_TIME_SEC; 419 inode->i_ctime = current_time(inode);
420 fat_detach(inode); 420 fat_detach(inode);
421out: 421out:
422 mutex_unlock(&MSDOS_SB(sb)->s_lock); 422 mutex_unlock(&MSDOS_SB(sb)->s_lock);
@@ -481,7 +481,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
481 mark_inode_dirty(old_inode); 481 mark_inode_dirty(old_inode);
482 482
483 old_dir->i_version++; 483 old_dir->i_version++;
484 old_dir->i_ctime = old_dir->i_mtime = CURRENT_TIME_SEC; 484 old_dir->i_ctime = old_dir->i_mtime = current_time(old_dir);
485 if (IS_DIRSYNC(old_dir)) 485 if (IS_DIRSYNC(old_dir))
486 (void)fat_sync_inode(old_dir); 486 (void)fat_sync_inode(old_dir);
487 else 487 else
@@ -490,7 +490,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
490 } 490 }
491 } 491 }
492 492
493 ts = CURRENT_TIME_SEC; 493 ts = current_time(old_inode);
494 if (new_inode) { 494 if (new_inode) {
495 if (err) 495 if (err)
496 goto out; 496 goto out;
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 92b7363dafa9..d4a1b2bfda64 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -777,7 +777,7 @@ static int vfat_create(struct inode *dir, struct dentry *dentry, umode_t mode,
777 777
778 mutex_lock(&MSDOS_SB(sb)->s_lock); 778 mutex_lock(&MSDOS_SB(sb)->s_lock);
779 779
780 ts = CURRENT_TIME_SEC; 780 ts = current_time(dir);
781 err = vfat_add_entry(dir, &dentry->d_name, 0, 0, &ts, &sinfo); 781 err = vfat_add_entry(dir, &dentry->d_name, 0, 0, &ts, &sinfo);
782 if (err) 782 if (err)
783 goto out; 783 goto out;
@@ -821,7 +821,7 @@ static int vfat_rmdir(struct inode *dir, struct dentry *dentry)
821 drop_nlink(dir); 821 drop_nlink(dir);
822 822
823 clear_nlink(inode); 823 clear_nlink(inode);
824 inode->i_mtime = inode->i_atime = CURRENT_TIME_SEC; 824 inode->i_mtime = inode->i_atime = current_time(inode);
825 fat_detach(inode); 825 fat_detach(inode);
826 dentry->d_time = dir->i_version; 826 dentry->d_time = dir->i_version;
827out: 827out:
@@ -847,7 +847,7 @@ static int vfat_unlink(struct inode *dir, struct dentry *dentry)
847 if (err) 847 if (err)
848 goto out; 848 goto out;
849 clear_nlink(inode); 849 clear_nlink(inode);
850 inode->i_mtime = inode->i_atime = CURRENT_TIME_SEC; 850 inode->i_mtime = inode->i_atime = current_time(inode);
851 fat_detach(inode); 851 fat_detach(inode);
852 dentry->d_time = dir->i_version; 852 dentry->d_time = dir->i_version;
853out: 853out:
@@ -866,7 +866,7 @@ static int vfat_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
866 866
867 mutex_lock(&MSDOS_SB(sb)->s_lock); 867 mutex_lock(&MSDOS_SB(sb)->s_lock);
868 868
869 ts = CURRENT_TIME_SEC; 869 ts = current_time(dir);
870 cluster = fat_alloc_new_dir(dir, &ts); 870 cluster = fat_alloc_new_dir(dir, &ts);
871 if (cluster < 0) { 871 if (cluster < 0) {
872 err = cluster; 872 err = cluster;
@@ -931,7 +931,7 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
931 } 931 }
932 } 932 }
933 933
934 ts = CURRENT_TIME_SEC; 934 ts = current_time(old_dir);
935 if (new_inode) { 935 if (new_inode) {
936 if (is_dir) { 936 if (is_dir) {
937 err = fat_dir_empty(new_inode); 937 err = fat_dir_empty(new_inode);