Since `-Eall-fragments` packs the whole data into the special inode,
it's possible to use the multi-threaded compression for this.
Some users may be interested in `-Eall-fragments` for extreme
compression anyway.
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Sandeep Dhavale <dhavale@google.com>
Link: https://lore.kernel.org/r/20240807085413.717066-1-hsiangkao@linux.alibaba.com
z_erofs_mt_enabled = false;
#ifdef EROFS_MT_ENABLED
- if (cfg.c_mt_workers > 1 && (cfg.c_dedupe || cfg.c_fragments)) {
+ if (cfg.c_mt_workers >= 1 && (cfg.c_dedupe ||
+ (cfg.c_fragments && !cfg.c_all_fragments))) {
if (cfg.c_dedupe)
erofs_warn("multi-threaded dedupe is NOT implemented for now");
if (cfg.c_fragments)
cfg.c_mt_workers = 0;
}
- if (cfg.c_mt_workers > 1) {
+ if (cfg.c_mt_workers >= 1) {
ret = erofs_alloc_workqueue(&z_erofs_mt_ctrl.wq,
cfg.c_mt_workers,
cfg.c_mt_workers << 2,