mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
overlayfs: convert to new timestamp accessors
Convert to using the new inode timestamp accessor functions. Signed-off-by: Jeff Layton <jlayton@kernel.org> Link: https://lore.kernel.org/r/20231004185347.80880-58-jlayton@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
702ed7f1c9
commit
4ddbd0f1fe
3 changed files with 10 additions and 6 deletions
|
@ -239,6 +239,7 @@ static void ovl_file_accessed(struct file *file)
|
||||||
{
|
{
|
||||||
struct inode *inode, *upperinode;
|
struct inode *inode, *upperinode;
|
||||||
struct timespec64 ctime, uctime;
|
struct timespec64 ctime, uctime;
|
||||||
|
struct timespec64 mtime, umtime;
|
||||||
|
|
||||||
if (file->f_flags & O_NOATIME)
|
if (file->f_flags & O_NOATIME)
|
||||||
return;
|
return;
|
||||||
|
@ -251,9 +252,11 @@ static void ovl_file_accessed(struct file *file)
|
||||||
|
|
||||||
ctime = inode_get_ctime(inode);
|
ctime = inode_get_ctime(inode);
|
||||||
uctime = inode_get_ctime(upperinode);
|
uctime = inode_get_ctime(upperinode);
|
||||||
if ((!timespec64_equal(&inode->i_mtime, &upperinode->i_mtime) ||
|
mtime = inode_get_mtime(inode);
|
||||||
!timespec64_equal(&ctime, &uctime))) {
|
umtime = inode_get_mtime(upperinode);
|
||||||
inode->i_mtime = upperinode->i_mtime;
|
if ((!timespec64_equal(&mtime, &umtime)) ||
|
||||||
|
!timespec64_equal(&ctime, &uctime)) {
|
||||||
|
inode_set_mtime_to_ts(inode, inode_get_mtime(upperinode));
|
||||||
inode_set_ctime_to_ts(inode, uctime);
|
inode_set_ctime_to_ts(inode, uctime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -704,7 +704,8 @@ int ovl_update_time(struct inode *inode, int flags)
|
||||||
|
|
||||||
if (upperpath.dentry) {
|
if (upperpath.dentry) {
|
||||||
touch_atime(&upperpath);
|
touch_atime(&upperpath);
|
||||||
inode->i_atime = d_inode(upperpath.dentry)->i_atime;
|
inode_set_atime_to_ts(inode,
|
||||||
|
inode_get_atime(d_inode(upperpath.dentry)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1409,8 +1409,8 @@ void ovl_copyattr(struct inode *inode)
|
||||||
inode->i_uid = vfsuid_into_kuid(vfsuid);
|
inode->i_uid = vfsuid_into_kuid(vfsuid);
|
||||||
inode->i_gid = vfsgid_into_kgid(vfsgid);
|
inode->i_gid = vfsgid_into_kgid(vfsgid);
|
||||||
inode->i_mode = realinode->i_mode;
|
inode->i_mode = realinode->i_mode;
|
||||||
inode->i_atime = realinode->i_atime;
|
inode_set_atime_to_ts(inode, inode_get_atime(realinode));
|
||||||
inode->i_mtime = realinode->i_mtime;
|
inode_set_mtime_to_ts(inode, inode_get_mtime(realinode));
|
||||||
inode_set_ctime_to_ts(inode, inode_get_ctime(realinode));
|
inode_set_ctime_to_ts(inode, inode_get_ctime(realinode));
|
||||||
i_size_write(inode, i_size_read(realinode));
|
i_size_write(inode, i_size_read(realinode));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue