diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index 276914ae3c60aaf297747f03b58d4582df335ec9..e1a55ecb7aba7a9e61c11dd93d16f8a97e788fc8 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -663,6 +663,10 @@ static int ovl_link(struct dentry *old, struct inode *newdir,
 	if (err)
 		goto out_drop_write;
 
+	err = ovl_copy_up(new->d_parent);
+	if (err)
+		goto out_drop_write;
+
 	if (ovl_is_metacopy_dentry(old)) {
 		err = ovl_set_redirect(old, false);
 		if (err)