@@ -789,7 +798,16 @@ static int z_erofs_pcluster_begin(struct z_erofs_decompress_frontend *fe)I guess here should be modified as below, please refer to
DBG_BUGON(fe->owned_head == Z_EROFS_PCLUSTER_NIL);
if (!(map->m_flags & EROFS_MAP_META)) {
- grp = erofs_find_workgroup(sb, blknr);
+ while (1) {
+ rcu_read_lock();
+ grp = xa_load(&EROFS_SB(sb)->managed_pslots, blknr);
+ if (erofs_workgroup_get(grp)) {
erofs_find_workgroup().