From: Yue Hu <[email protected]>

This feature can merge tail of per-file or the whole files into a
special inode to achieve greater compression ratio.

Meanwhile, also add a interlaced uncompressed data layout support for
compressed files since fragments feature (and later) can use it.

mkfs v8: https://lore.kernel.org/all/[email protected]/

changes from v3:
 - improve the interlaced layout for non 4K uncompressed data as well (Xiang)
 - support 64bit fragment offset for fragment inode and legacy compress (Xiang)

changes from v2:
 - enhance the condition to check if pcluster is interlaced or not;
 - no typo.

changes from v1:
 - fix a compiling error without CONFIG_EROFS_FS_ZIP, reported by kernel test
   robot <[email protected]>;
 - introduce the term 'interlaced' for patch 1/2 suggested by Xiang;
 - fix packed inode failure path when read super pointed out by Xiang;
 - use kmap_local_page instead of kmap_atomic pointed out by Xiang;
 - use a simpler way to avoid call read fragment data twice suggested by Xiang;
 - update commit message change.

Yue Hu (2):
  erofs: support interlaced uncompressed data for compressed files
  erofs: support on-disk compressed fragments data

 fs/erofs/decompressor.c | 47 ++++++++++++++++++-------------
 fs/erofs/erofs_fs.h     | 31 +++++++++++++++++----
 fs/erofs/internal.h     | 17 +++++++++--
 fs/erofs/super.c        | 15 ++++++++++
 fs/erofs/sysfs.c        |  2 ++
 fs/erofs/zdata.c        | 48 ++++++++++++++++++++++++++++++-
 fs/erofs/zmap.c         | 62 +++++++++++++++++++++++++++++++++++++----
 7 files changed, 187 insertions(+), 35 deletions(-)

-- 
2.17.1

Reply via email to