Squashfs: Generalise paging handling in the decompressors
authorPhillip Lougher <phillip@squashfs.org.uk>
Mon, 18 Nov 2013 02:59:12 +0000 (02:59 +0000)
committerPhillip Lougher <phillip@squashfs.org.uk>
Wed, 20 Nov 2013 03:59:01 +0000 (03:59 +0000)
commit846b730e99518a1c9945afcb2afbe4d08a02ed80
treec70eb16cbec15e5bfa1db80c5f18e062673331a9
parentd208383d640727b70cd6689bc17e67e9b5ebf4ff
Squashfs: Generalise paging handling in the decompressors

Further generalise the decompressors by adding a page handler
abstraction.  This adds helpers to allow the decompressors
to access and process the output buffers in an implementation
independant manner.

This allows different types of output buffer to be passed
to the decompressors, with the implementation specific
aspects handled at decompression time, but without the
knowledge being held in the decompressor wrapper code.

This will allow the decompressors to handle Squashfs
cache buffers, and page cache pages.

This patch adds the abstraction and an implementation for
the caches.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
Reviewed-by: Minchan Kim <minchan@kernel.org>
13 files changed:
fs/squashfs/block.c
fs/squashfs/cache.c
fs/squashfs/decompressor.c
fs/squashfs/decompressor.h
fs/squashfs/decompressor_multi.c
fs/squashfs/decompressor_multi_percpu.c
fs/squashfs/decompressor_single.c
fs/squashfs/lzo_wrapper.c
fs/squashfs/page_actor.h [new file with mode: 0644]
fs/squashfs/squashfs.h
fs/squashfs/squashfs_fs_sb.h
fs/squashfs/xz_wrapper.c
fs/squashfs/zlib_wrapper.c