[PATCH stable 5.15.y] erofs: fix compact 4B support for 16k block size
Greg Kroah-Hartman
gregkh at linuxfoundation.org
Fri Jul 21 15:29:26 AEST 2023
On Fri, Jul 21, 2023 at 10:22:21AM +0800, Gao Xiang wrote:
> commit 001b8ccd0650727e54ec16ef72bf1b8eeab7168e upstream.
>
> In compact 4B, two adjacent lclusters are packed together as a unit to
> form on-disk indexes for effective random access, as below:
>
> (amortized = 4, vcnt = 2)
> _____________________________________________
> |___ at _____ encoded bits __________|_ blkaddr _|
> 0 . amortized * vcnt = 8
> . .
> . . amortized * vcnt - 4 = 4
> . .
> .____________________________.
> |_type (2 bits)_|_clusterofs_|
>
> Therefore, encoded bits for each pack are 32 bits (4 bytes). IOWs,
> since each lcluster can get 16 bits for its type and clusterofs, the
> maximum supported lclustersize for compact 4B format is 16k (14 bits).
>
> Fix this to enable compact 4B format for 16k lclusters (blocks), which
> is tested on an arm64 server with 16k page size.
>
> Fixes: 152a333a5895 ("staging: erofs: add compacted compression indexes support")
> Link: https://lore.kernel.org/r/20230601112341.56960-1-hsiangkao@linux.alibaba.com
> Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
> ---
> resolve a trivial conflict.
All now queued up.
thanks,
greg k-h
More information about the Linux-erofs
mailing list