From: Gao Xiang <[email protected]>

Otherwise, an unexpected segfault will happen since
  EROFS_FEATURE_INCOMPAT_FRAGMENTS and
  EROFS_FEATURE_INCOMPAT_DEDUPE    share the same bit.

Fixes: 18fbf7d12e4f ("erofs-utils: build xattrs upon extra long name prefixes")
Signed-off-by: Gao Xiang <[email protected]>
Signed-off-by: Jingbo Xu <[email protected]>
---
v2: flush packed inode when either cfg.c_fragments or
cfg.c_extra_ea_name_prefixes is specified
---
 mkfs/main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mkfs/main.c b/mkfs/main.c
index 467ea86..61387b3 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -903,7 +903,8 @@ int main(int argc, char **argv)
        }
 
        packed_nid = 0;
-       if (erofs_sb_has_fragments()) {
+       if ((cfg.c_fragments || cfg.c_extra_ea_name_prefixes) &&
+           erofs_sb_has_fragments()) {
                erofs_update_progressinfo("Handling packed_file ...");
                packed_inode = erofs_mkfs_build_packedfile();
                if (IS_ERR(packed_inode)) {
-- 
2.19.1.6.gb485710b

Reply via email to