forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-09-20 a36159eec6ca17402b0e146b86efaf76568dc353
kernel/fs/fat/namei_vfat.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * linux/fs/vfat/namei.c
34 *
....@@ -678,7 +679,7 @@
678679 goto cleanup;
679680
680681 /* update timestamp */
681
- dir->i_ctime = dir->i_mtime = dir->i_atime = *ts;
682
+ fat_truncate_time(dir, ts, S_CTIME|S_MTIME);
682683 if (IS_DIRSYNC(dir))
683684 (void)fat_sync_inode(dir);
684685 else
....@@ -779,7 +780,7 @@
779780 goto out;
780781 }
781782 inode_inc_iversion(inode);
782
- inode->i_mtime = inode->i_atime = inode->i_ctime = ts;
783
+ fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
783784 /* timestamp is already written, so mark_inode_dirty() is unneeded. */
784785
785786 d_instantiate(dentry, inode);
....@@ -810,7 +811,7 @@
810811 drop_nlink(dir);
811812
812813 clear_nlink(inode);
813
- inode->i_mtime = inode->i_atime = current_time(inode);
814
+ fat_truncate_time(inode, NULL, S_ATIME|S_MTIME);
814815 fat_detach(inode);
815816 vfat_d_version_set(dentry, inode_query_iversion(dir));
816817 out:
....@@ -836,7 +837,7 @@
836837 if (err)
837838 goto out;
838839 clear_nlink(inode);
839
- inode->i_mtime = inode->i_atime = current_time(inode);
840
+ fat_truncate_time(inode, NULL, S_ATIME|S_MTIME);
840841 fat_detach(inode);
841842 vfat_d_version_set(dentry, inode_query_iversion(dir));
842843 out:
....@@ -876,7 +877,7 @@
876877 }
877878 inode_inc_iversion(inode);
878879 set_nlink(inode, 2);
879
- inode->i_mtime = inode->i_atime = inode->i_ctime = ts;
880
+ fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
880881 /* timestamp is already written, so mark_inode_dirty() is unneeded. */
881882
882883 d_instantiate(dentry, inode);
....@@ -969,7 +970,7 @@
969970 if (err)
970971 goto error_dotdot;
971972 inode_inc_iversion(old_dir);
972
- old_dir->i_ctime = old_dir->i_mtime = ts;
973
+ fat_truncate_time(old_dir, &ts, S_CTIME|S_MTIME);
973974 if (IS_DIRSYNC(old_dir))
974975 (void)fat_sync_inode(old_dir);
975976 else
....@@ -979,7 +980,7 @@
979980 drop_nlink(new_inode);
980981 if (is_dir)
981982 drop_nlink(new_inode);
982
- new_inode->i_ctime = ts;
983
+ fat_truncate_time(new_inode, &ts, S_CTIME);
983984 }
984985 out:
985986 brelse(sinfo.bh);
....@@ -1032,6 +1033,7 @@
10321033 .rename = vfat_rename,
10331034 .setattr = fat_setattr,
10341035 .getattr = fat_getattr,
1036
+ .update_time = fat_update_time,
10351037 };
10361038
10371039 static void setup(struct super_block *sb)
....@@ -1075,6 +1077,7 @@
10751077 }
10761078
10771079 MODULE_LICENSE("GPL");
1080
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
10781081 MODULE_DESCRIPTION("VFAT filesystem support");
10791082 MODULE_AUTHOR("Gordon Chaffee");
10801083