From cd91304e7190b4c4802f8e413ab2214b233e0260 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Tue, 5 Sep 2017 12:53:11 +0200 Subject: ovl: fix relatime for directories Need to treat non-regular overlayfs files the same as regular files when checking for an atime update. Add a d_real() flag to make it return the upper dentry for all file types. Reported-by: "zhangyi (F)" Signed-off-by: Miklos Szeredi --- fs/overlayfs/super.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'fs/overlayfs/super.c') diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index 19e89ce39017..cd49c0298ddf 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -75,6 +75,9 @@ static struct dentry *ovl_d_real(struct dentry *dentry, struct dentry *real; int err; + if (flags & D_REAL_UPPER) + return ovl_dentry_upper(dentry); + if (!d_is_reg(dentry)) { if (!inode || inode == d_inode(dentry)) return dentry; -- cgit v1.2.3