Skip to content

Commit

Permalink
ovl: cleanup ovl_update_time()
Browse files Browse the repository at this point in the history
No need to mess with an alias, the upperdentry can be retrieved directly
from the overlay inode.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
  • Loading branch information
Miklos Szeredi committed Apr 12, 2018
1 parent 3a29177 commit 8f35cf5
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions fs/overlayfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,24 +380,18 @@ int ovl_open_maybe_copy_up(struct dentry *dentry, unsigned int file_flags)

int ovl_update_time(struct inode *inode, struct timespec *ts, int flags)
{
struct dentry *alias;
struct path upperpath;

if (!(flags & S_ATIME))
return 0;

alias = d_find_any_alias(inode);
if (!alias)
return 0;

ovl_path_upper(alias, &upperpath);
if (upperpath.dentry) {
touch_atime(&upperpath);
inode->i_atime = d_inode(upperpath.dentry)->i_atime;
if (flags & S_ATIME) {
struct ovl_fs *ofs = inode->i_sb->s_fs_info;
struct path upperpath = {
.mnt = ofs->upper_mnt,
.dentry = ovl_upperdentry_dereference(OVL_I(inode)),
};

if (upperpath.dentry) {
touch_atime(&upperpath);
inode->i_atime = d_inode(upperpath.dentry)->i_atime;
}
}

dput(alias);

return 0;
}

Expand Down

0 comments on commit 8f35cf5

Please sign in to comment.