When a metacopy file is no longer a metacopy and data has been copied up, remove REDIRECT xattr. Its not needed anymore. Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx> --- fs/overlayfs/copy_up.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c index 0c8d2755bd25..fbaf5fbfdf88 100644 --- a/fs/overlayfs/copy_up.c +++ b/fs/overlayfs/copy_up.c @@ -774,9 +774,18 @@ static int ovl_copy_up_meta_inode_data(struct ovl_copy_up_ctx *c) err = vfs_removexattr(upperpath.dentry, OVL_XATTR_METACOPY); if (err) return err; + /* + * A metacopy files does not need redirect xattr once data has + * been copied up. + */ + err = vfs_removexattr(upperpath.dentry, OVL_XATTR_REDIRECT); + if (err && err != -ENODATA && err != -EOPNOTSUPP) + return err; + /* We must be holding ovl_inode->lock if we are here */ + ovl_dentry_set_redirect(c->dentry, NULL); ovl_set_upperdata(d_inode(c->dentry)); - return err; + return 0; } static int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry, -- 2.13.6 -- 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