On Thu, Nov 9, 2017 at 10:50 PM, Vivek Goyal <vgoyal@xxxxxxxxxx> wrote: > Upper dentry inode does not have data. So return lower dentry if upper > is only a metadata copy. > > Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx> > --- > fs/overlayfs/super.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c > index 84b8f6dc0f61..5cb19781763d 100644 > --- a/fs/overlayfs/super.c > +++ b/fs/overlayfs/super.c > @@ -101,14 +101,19 @@ static struct dentry *ovl_d_real(struct dentry *dentry, > > real = ovl_dentry_upper(dentry); > if (real && (!inode || inode == d_inode(real))) { > + bool metacopy = !ovl_has_upperdata(dentry); > if (!inode) { > err = ovl_check_append_only(d_inode(real), open_flags); > if (err) > return ERR_PTR(err); > + > + if (unlikely(metacopy)) I don't see why boolean var is needed and I prefer if memory barrier was introduced already in this patch. Amir. -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html