erofs: add on-disk compression configurations
authorGao Xiang <hsiangkao@redhat.com>
Mon, 29 Mar 2021 10:00:12 +0000 (18:00 +0800)
committerGao Xiang <hsiangkao@redhat.com>
Mon, 29 Mar 2021 10:01:42 +0000 (18:01 +0800)
commit14373711dd54be8a84e2f4f624bc58787f80cfbd
tree46b55e6a840c01886d88145052f5b2460dfbf0e8
parent46249cded18ac0c4ffb7b177219510a133a51c00
erofs: add on-disk compression configurations

Add a bitmap for available compression algorithms and a variable-sized
on-disk table for compression options in preparation for upcoming big
pcluster and LZMA algorithm, which follows the end of super block.

To parse the compression options, the bitmap is scanned one by one.
For each available algorithm, there is data followed by 2-byte `length'
correspondingly (it's enough for most cases, or entire fs blocks should
be used.)

With such available algorithm bitmap, kernel itself can also refuse to
mount such filesystem if any unsupported compression algorithm exists.

Note that COMPR_CFGS feature will be enabled with BIG_PCLUSTER.

Link: https://lore.kernel.org/r/20210329100012.12980-1-hsiangkao@aol.com
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
fs/erofs/decompressor.c
fs/erofs/erofs_fs.h
fs/erofs/internal.h
fs/erofs/super.c