aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Sorenson <sorenson@redhat.com>2018-10-30 18:06:57 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-10-31 11:54:14 -0400
commitcd83f6b194e95fa616dd3157ae7a63d4713b6670 (patch)
treec02e26444823a63bf113906889b5041fc09a55ea
parent6bb885ecd746752aa70d146b58f2f83e5e21813d (diff)
fat: change timestamp updates to use fat_truncate_time
Convert the inode timestamp updates to use fat_truncate_time. Link: http://lkml.kernel.org/r/2663d3083c4dd62f00b64612c8eaf5542bb05a4c.1538363961.git.sorenson@redhat.com Signed-off-by: Frank Sorenson <sorenson@redhat.com> Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/fat/dir.c2
-rw-r--r--fs/fat/file.c4
-rw-r--r--fs/fat/inode.c4
-rw-r--r--fs/fat/namei_msdos.c16
-rw-r--r--fs/fat/namei_vfat.c14
5 files changed, 20 insertions, 20 deletions
diff --git a/fs/fat/dir.c b/fs/fat/dir.c
index ce5f958f6b23..c8366cb8eccd 100644
--- a/fs/fat/dir.c
+++ b/fs/fat/dir.c
@@ -1073,7 +1073,7 @@ int fat_remove_entries(struct inode *dir, struct fat_slot_info *sinfo)
1073 } 1073 }
1074 } 1074 }
1075 1075
1076 dir->i_mtime = dir->i_atime = current_time(dir); 1076 fat_truncate_time(dir, NULL, S_ATIME|S_MTIME);
1077 if (IS_DIRSYNC(dir)) 1077 if (IS_DIRSYNC(dir))
1078 (void)fat_sync_inode(dir); 1078 (void)fat_sync_inode(dir);
1079 else 1079 else
diff --git a/fs/fat/file.c b/fs/fat/file.c
index 19b6b0566411..4b5438405415 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -227,7 +227,7 @@ static int fat_cont_expand(struct inode *inode, loff_t size)
227 if (err) 227 if (err)
228 goto out; 228 goto out;
229 229
230 inode->i_ctime = inode->i_mtime = current_time(inode); 230 fat_truncate_time(inode, NULL, S_CTIME|S_MTIME);
231 mark_inode_dirty(inode); 231 mark_inode_dirty(inode);
232 if (IS_SYNC(inode)) { 232 if (IS_SYNC(inode)) {
233 int err2; 233 int err2;
@@ -330,7 +330,7 @@ static int fat_free(struct inode *inode, int skip)
330 MSDOS_I(inode)->i_logstart = 0; 330 MSDOS_I(inode)->i_logstart = 0;
331 } 331 }
332 MSDOS_I(inode)->i_attrs |= ATTR_ARCH; 332 MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
333 inode->i_ctime = inode->i_mtime = current_time(inode); 333 fat_truncate_time(inode, NULL, S_CTIME|S_MTIME);
334 if (wait) { 334 if (wait) {
335 err = fat_sync_inode(inode); 335 err = fat_sync_inode(inode);
336 if (err) { 336 if (err) {
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index 3bf60f19b6d3..c0b5b5c3373b 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -244,7 +244,7 @@ static int fat_write_end(struct file *file, struct address_space *mapping,
244 if (err < len) 244 if (err < len)
245 fat_write_failed(mapping, pos + len); 245 fat_write_failed(mapping, pos + len);
246 if (!(err < 0) && !(MSDOS_I(inode)->i_attrs & ATTR_ARCH)) { 246 if (!(err < 0) && !(MSDOS_I(inode)->i_attrs & ATTR_ARCH)) {
247 inode->i_mtime = inode->i_ctime = current_time(inode); 247 fat_truncate_time(inode, NULL, S_CTIME|S_MTIME);
248 MSDOS_I(inode)->i_attrs |= ATTR_ARCH; 248 MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
249 mark_inode_dirty(inode); 249 mark_inode_dirty(inode);
250 } 250 }
@@ -564,7 +564,7 @@ int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de)
564 de->cdate, de->ctime_cs); 564 de->cdate, de->ctime_cs);
565 fat_time_fat2unix(sbi, &inode->i_atime, 0, de->adate, 0); 565 fat_time_fat2unix(sbi, &inode->i_atime, 0, de->adate, 0);
566 } else 566 } else
567 inode->i_ctime = inode->i_atime = inode->i_mtime; 567 fat_truncate_time(inode, &inode->i_mtime, S_ATIME|S_CTIME);
568 568
569 return 0; 569 return 0;
570} 570}
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c
index effbdd5fbf6e..f2cd365a4e86 100644
--- a/fs/fat/namei_msdos.c
+++ b/fs/fat/namei_msdos.c
@@ -250,7 +250,7 @@ static int msdos_add_entry(struct inode *dir, const unsigned char *name,
250 if (err) 250 if (err)
251 return err; 251 return err;
252 252
253 dir->i_ctime = dir->i_mtime = *ts; 253 fat_truncate_time(dir, ts, S_CTIME|S_MTIME);
254 if (IS_DIRSYNC(dir)) 254 if (IS_DIRSYNC(dir))
255 (void)fat_sync_inode(dir); 255 (void)fat_sync_inode(dir);
256 else 256 else
@@ -294,7 +294,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode,
294 err = PTR_ERR(inode); 294 err = PTR_ERR(inode);
295 goto out; 295 goto out;
296 } 296 }
297 inode->i_mtime = inode->i_atime = inode->i_ctime = ts; 297 fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
298 /* timestamp is already written, so mark_inode_dirty() is unneeded. */ 298 /* timestamp is already written, so mark_inode_dirty() is unneeded. */
299 299
300 d_instantiate(dentry, inode); 300 d_instantiate(dentry, inode);
@@ -327,7 +327,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
327 drop_nlink(dir); 327 drop_nlink(dir);
328 328
329 clear_nlink(inode); 329 clear_nlink(inode);
330 inode->i_ctime = current_time(inode); 330 fat_truncate_time(inode, NULL, S_CTIME);
331 fat_detach(inode); 331 fat_detach(inode);
332out: 332out:
333 mutex_unlock(&MSDOS_SB(sb)->s_lock); 333 mutex_unlock(&MSDOS_SB(sb)->s_lock);
@@ -380,7 +380,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
380 goto out; 380 goto out;
381 } 381 }
382 set_nlink(inode, 2); 382 set_nlink(inode, 2);
383 inode->i_mtime = inode->i_atime = inode->i_ctime = ts; 383 fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
384 /* timestamp is already written, so mark_inode_dirty() is unneeded. */ 384 /* timestamp is already written, so mark_inode_dirty() is unneeded. */
385 385
386 d_instantiate(dentry, inode); 386 d_instantiate(dentry, inode);
@@ -413,7 +413,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry)
413 if (err) 413 if (err)
414 goto out; 414 goto out;
415 clear_nlink(inode); 415 clear_nlink(inode);
416 inode->i_ctime = current_time(inode); 416 fat_truncate_time(inode, NULL, S_CTIME);
417 fat_detach(inode); 417 fat_detach(inode);
418out: 418out:
419 mutex_unlock(&MSDOS_SB(sb)->s_lock); 419 mutex_unlock(&MSDOS_SB(sb)->s_lock);
@@ -478,7 +478,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
478 mark_inode_dirty(old_inode); 478 mark_inode_dirty(old_inode);
479 479
480 inode_inc_iversion(old_dir); 480 inode_inc_iversion(old_dir);
481 old_dir->i_ctime = old_dir->i_mtime = current_time(old_dir); 481 fat_truncate_time(old_dir, NULL, S_CTIME|S_MTIME);
482 if (IS_DIRSYNC(old_dir)) 482 if (IS_DIRSYNC(old_dir))
483 (void)fat_sync_inode(old_dir); 483 (void)fat_sync_inode(old_dir);
484 else 484 else
@@ -538,7 +538,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
538 if (err) 538 if (err)
539 goto error_dotdot; 539 goto error_dotdot;
540 inode_inc_iversion(old_dir); 540 inode_inc_iversion(old_dir);
541 old_dir->i_ctime = old_dir->i_mtime = ts; 541 fat_truncate_time(old_dir, &ts, S_CTIME|S_MTIME);
542 if (IS_DIRSYNC(old_dir)) 542 if (IS_DIRSYNC(old_dir))
543 (void)fat_sync_inode(old_dir); 543 (void)fat_sync_inode(old_dir);
544 else 544 else
@@ -548,7 +548,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
548 drop_nlink(new_inode); 548 drop_nlink(new_inode);
549 if (is_dir) 549 if (is_dir)
550 drop_nlink(new_inode); 550 drop_nlink(new_inode);
551 new_inode->i_ctime = ts; 551 fat_truncate_time(new_inode, &ts, S_CTIME);
552 } 552 }
553out: 553out:
554 brelse(sinfo.bh); 554 brelse(sinfo.bh);
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 1daa57cf4bf3..996c8c25e9c6 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -678,7 +678,7 @@ static int vfat_add_entry(struct inode *dir, const struct qstr *qname,
678 goto cleanup; 678 goto cleanup;
679 679
680 /* update timestamp */ 680 /* update timestamp */
681 dir->i_ctime = dir->i_mtime = dir->i_atime = *ts; 681 fat_truncate_time(dir, ts, S_CTIME|S_MTIME);
682 if (IS_DIRSYNC(dir)) 682 if (IS_DIRSYNC(dir))
683 (void)fat_sync_inode(dir); 683 (void)fat_sync_inode(dir);
684 else 684 else
@@ -779,7 +779,7 @@ static int vfat_create(struct inode *dir, struct dentry *dentry, umode_t mode,
779 goto out; 779 goto out;
780 } 780 }
781 inode_inc_iversion(inode); 781 inode_inc_iversion(inode);
782 inode->i_mtime = inode->i_atime = inode->i_ctime = ts; 782 fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
783 /* timestamp is already written, so mark_inode_dirty() is unneeded. */ 783 /* timestamp is already written, so mark_inode_dirty() is unneeded. */
784 784
785 d_instantiate(dentry, inode); 785 d_instantiate(dentry, inode);
@@ -810,7 +810,7 @@ static int vfat_rmdir(struct inode *dir, struct dentry *dentry)
810 drop_nlink(dir); 810 drop_nlink(dir);
811 811
812 clear_nlink(inode); 812 clear_nlink(inode);
813 inode->i_mtime = inode->i_atime = current_time(inode); 813 fat_truncate_time(inode, NULL, S_ATIME|S_MTIME);
814 fat_detach(inode); 814 fat_detach(inode);
815 vfat_d_version_set(dentry, inode_query_iversion(dir)); 815 vfat_d_version_set(dentry, inode_query_iversion(dir));
816out: 816out:
@@ -836,7 +836,7 @@ static int vfat_unlink(struct inode *dir, struct dentry *dentry)
836 if (err) 836 if (err)
837 goto out; 837 goto out;
838 clear_nlink(inode); 838 clear_nlink(inode);
839 inode->i_mtime = inode->i_atime = current_time(inode); 839 fat_truncate_time(inode, NULL, S_ATIME|S_MTIME);
840 fat_detach(inode); 840 fat_detach(inode);
841 vfat_d_version_set(dentry, inode_query_iversion(dir)); 841 vfat_d_version_set(dentry, inode_query_iversion(dir));
842out: 842out:
@@ -876,7 +876,7 @@ static int vfat_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
876 } 876 }
877 inode_inc_iversion(inode); 877 inode_inc_iversion(inode);
878 set_nlink(inode, 2); 878 set_nlink(inode, 2);
879 inode->i_mtime = inode->i_atime = inode->i_ctime = ts; 879 fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
880 /* timestamp is already written, so mark_inode_dirty() is unneeded. */ 880 /* timestamp is already written, so mark_inode_dirty() is unneeded. */
881 881
882 d_instantiate(dentry, inode); 882 d_instantiate(dentry, inode);
@@ -969,7 +969,7 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
969 if (err) 969 if (err)
970 goto error_dotdot; 970 goto error_dotdot;
971 inode_inc_iversion(old_dir); 971 inode_inc_iversion(old_dir);
972 old_dir->i_ctime = old_dir->i_mtime = ts; 972 fat_truncate_time(old_dir, &ts, S_CTIME|S_MTIME);
973 if (IS_DIRSYNC(old_dir)) 973 if (IS_DIRSYNC(old_dir))
974 (void)fat_sync_inode(old_dir); 974 (void)fat_sync_inode(old_dir);
975 else 975 else
@@ -979,7 +979,7 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
979 drop_nlink(new_inode); 979 drop_nlink(new_inode);
980 if (is_dir) 980 if (is_dir)
981 drop_nlink(new_inode); 981 drop_nlink(new_inode);
982 new_inode->i_ctime = ts; 982 fat_truncate_time(new_inode, &ts, S_CTIME);
983 } 983 }
984out: 984out:
985 brelse(sinfo.bh); 985 brelse(sinfo.bh);