+1
−2
Loading
folio_trylock() in erofs_try_to_free_all_cached_folios() may successfully acquire the folio lock, but the subsequent check for erofs_folio_is_managed() can skip unlocking when the folio is not managed by EROFS. As Gao Xiang pointed out, this condition should not happen in practice because compressed_bvecs[] only holds valid cached folios at this point — any non-managed folio would have already been detached by z_erofs_cache_release_folio() under folio lock. Fix this by adding DBG_BUGON() to catch unexpected folios and ensure folio_unlock() is always called. Suggested-by:Gao Xiang <hsiangkao@linux.alibaba.com> Signed-off-by:
Zhan Xusheng <zhanxusheng@xiaomi.com> Reviewed-by:
Gao Xiang <hsiangkao@linux.alibaba.com> Reviewed-by:
Chunhai Guo <guochunhai@vivo.com> Signed-off-by:
Gao Xiang <hsiangkao@linux.alibaba.com>