]> git.baikalelectronics.ru Git - kernel.git/commit
erofs: introduce multi-reference pclusters (fully-referenced)
authorGao Xiang <hsiangkao@linux.alibaba.com>
Fri, 15 Jul 2022 15:42:03 +0000 (23:42 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Fri, 22 Jul 2022 13:44:27 +0000 (21:44 +0800)
commit1acfe91f805112e05c88a295179e3bd999c1e90d
tree21c44fe56bc17f1e308d3895b5f8ea8ee0691cf2
parentfaaef36afeb326c1c8e61ab3b4c3fb8127451e8c
erofs: introduce multi-reference pclusters (fully-referenced)

Let's introduce multi-reference pclusters at runtime. In details,
if one pcluster is requested by multiple extents at almost the same
time (even belong to different files), the longest extent will be
decompressed as representative and the other extents are actually
copied from the longest one in one round.

After this patch, fully-referenced extents can be correctly handled
and the full decoding check needs to be bypassed for
partial-referenced extents.

Acked-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20220715154203.48093-17-hsiangkao@linux.alibaba.com
fs/erofs/compress.h
fs/erofs/decompressor.c
fs/erofs/zdata.c
fs/erofs/zdata.h