Hi all, This patch-set enables Squashfs to handle missing pages when directly decompressing datablocks into the page cache. Previously if the full set of pages needed was not available, Squashfs would have to fall back to using an intermediate buffer (the older method), which is slower, involving a memcopy, and it introduces contention on a shared buffer. The first patch extends the "page actor" code to handle missing pages. The second patch updates Squashfs_readpage_block() to use the new functionality, and removes the code that falls back to using an intermediate buffer. This patch-set is independent of the readahead work, and it is standalone. It can be merged on its own. But the readahead patch for efficiency also needs this patch-set. Phillip ---------------------------------------------------------------- Phillip Lougher (2): Squashfs: extend "page actor" to handle missing pages Squashfs: don't use intermediate buffer if pages missing fs/squashfs/block.c | 10 ++++-- fs/squashfs/decompressor.h | 1 + fs/squashfs/file_direct.c | 90 +++++++++++----------------------------------- fs/squashfs/lz4_wrapper.c | 7 ++-- fs/squashfs/lzo_wrapper.c | 7 ++-- fs/squashfs/page_actor.c | 67 ++++++++++++++++++++++++++++------ fs/squashfs/page_actor.h | 17 +++++++-- fs/squashfs/xz_wrapper.c | 11 +++++- fs/squashfs/zlib_wrapper.c | 12 ++++++- fs/squashfs/zstd_wrapper.c | 12 ++++++- 10 files changed, 142 insertions(+), 92 deletions(-)