ovl: Treat metacopy dentries as type OVL_PATH_MERGE

Right now OVL_PATH_MERGE is used only for merged directories.  But
conceptually, a metacopy dentry (backed by a lower data dentry) is a merged
entity as well.

So mark metacopy dentries as OVL_PATH_MERGE and ovl_rename() makes use of
this property later to set redirect on a metacopy file.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
Vivek Goyal 2018-05-11 11:49:32 -04:00 committed by Miklos Szeredi
parent b8a8824ca0
commit 0b17c28af1

View file

@ -134,7 +134,8 @@ enum ovl_path_type ovl_path_type(struct dentry *dentry)
*/
if (oe->numlower) {
type |= __OVL_PATH_ORIGIN;
if (d_is_dir(dentry))
if (d_is_dir(dentry) ||
!ovl_has_upperdata(d_inode(dentry)))
type |= __OVL_PATH_MERGE;
}
} else {