erofs-utils: set opaque flag for directories in tarerofs mode
authorGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 2 Apr 2024 02:58:58 +0000 (10:58 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Sun, 7 Apr 2024 07:36:01 +0000 (15:36 +0800)
Opaque dir flag is needed if the tar tree is used immediately for
the upcoming append mode.

Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Link: https://lore.kernel.org/r/20240402025858.1729161-1-hsiangkao@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
lib/tar.c

index 7c271f610db6c594812a7a7feac26690523dff13..b45657de808f922b77c542878d368144f5d57ba8 100644 (file)
--- a/lib/tar.c
+++ b/lib/tar.c
@@ -909,6 +909,11 @@ restart:
        } else if (opq) {
                DBG_BUGON(d->type == EROFS_FT_UNKNOWN);
                DBG_BUGON(!d->inode);
+               /*
+                * needed if the tar tree is used soon, thus we have no chance
+                * to generate it from xattrs.  No impact to mergefs.
+                */
+               d->inode->opaque = true;
                ret = erofs_set_opaque_xattr(d->inode);
                goto out;
        } else if (th->typeflag == '1') {       /* hard link cases */