tree 68091051140e7793667a4d94998f5f9bdadee0e6
parent 76b822726ff8186133431cdce492e65b71c35cfe
author Gao Xiang <gaoxiang25@huawei.com> 1560537392 +0800
committer Gao Xiang <hsiangkao@aol.com> 1564802862 +0800

erofs-utils: support decompress in-place

In the view of kernel, it usually loads compressed data into
last pages of the extent (the last page for 4k) for in-place
decompression (more specifically, in-place IO), as ilustration
below,

         start of compressed logical extent
           |                          end of this logical extent
           |                           |
     ______v___________________________v________
... |  page 6  |  page 7  |  page 8  |  page 9  | ...
    |__________|__________|__________|__________|
           .                         ^ .        ^
           .                         |compressed|
           .                         |   data   |
           .                           .        .
           |<          dstsize        >|<margin>|
                                       oend     iend
           op                        ip

It's natural to think it further, why not decompressing in-place?

1) Decompressing in-place can be easily implemented since oend is
   _strictly_ not greater than iend for fixed-output decompression;
2) Decompressing in-place can be guaranteed with a appropriate
   minimum margin rather than do decompress simulatation
   for all extents;
*) Many implementations of memcpy can perform overlapped copy
   well if op <= ip (it'd better to use memmove, of course).

This patch enables 0PADDING in order to support decompress in-place.

Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
