diff options
author | Frank Sorenson <sorenson@redhat.com> | 2018-10-30 18:06:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-31 11:54:14 -0400 |
commit | cd83f6b194e95fa616dd3157ae7a63d4713b6670 (patch) | |
tree | c02e26444823a63bf113906889b5041fc09a55ea | |
parent | 6bb885ecd746752aa70d146b58f2f83e5e21813d (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.c | 2 | ||||
-rw-r--r-- | fs/fat/file.c | 4 | ||||
-rw-r--r-- | fs/fat/inode.c | 4 | ||||
-rw-r--r-- | fs/fat/namei_msdos.c | 16 | ||||
-rw-r--r-- | fs/fat/namei_vfat.c | 14 |
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); |
332 | out: | 332 | out: |
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); |
418 | out: | 418 | out: |
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 | } |
553 | out: | 553 | out: |
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)); |
816 | out: | 816 | out: |
@@ -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)); |
842 | out: | 842 | out: |
@@ -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 | } |
984 | out: | 984 | out: |
985 | brelse(sinfo.bh); | 985 | brelse(sinfo.bh); |