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) > _____________________________________________ > |___@_____ 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@xxxxxxxxxxxxxxxxx > Signed-off-by: Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> > --- > resolve a trivial conflict. All now queued up. thanks, greg k-h