On Thu, May 31, 2018 at 12:05 AM, Vivek Goyal <vgoyal@xxxxxxxxxx> wrote: > On Tue, May 29, 2018 at 04:46:00PM +0200, Miklos Szeredi wrote: >> From: Vivek Goyal <vgoyal@xxxxxxxxxx> >> >> Metacopy dentry/inode is internal to overlay and is never exposed outside >> of it. Exception is metacopy upper file used for fsync(). Modify d_real() >> to look for dentries/inode which have data, but also allow matching upper >> inode without data for the fsync case. >> > > Hi Miklos, > > I am not able to see how in fsync() path d_real() gets called. If we > decide to do fsync() on upper metacopy, then opening upper will not > go through d_real(). And we never issue fsync() on lower. > > So I am scratching my head while trying to understand the d_real() and > fsync() connection. > fsync() exposes real meta inode to vfs, so file_dentry() needs to be able to find the real meta upper dentry. Thanks, Amir.