Skip to content

Commit

Permalink
Squashfs: Make ZLIB compression support optional
Browse files Browse the repository at this point in the history
Squashfs now supports XZ and LZO compression in addition to ZLIB.
As such it no longer makes sense to always include ZLIB support.
In particular embedded systems may only use LZO or XZ compression, and
the ability to exclude ZLIB support will reduce kernel size.

Signed-off-by: Phillip Lougher <[email protected]>
  • Loading branch information
plougher committed Jul 22, 2011
1 parent 812753d commit cc6d349
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 5 deletions.
14 changes: 13 additions & 1 deletion fs/squashfs/Kconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
config SQUASHFS
tristate "SquashFS 4.0 - Squashed file system support"
depends on BLOCK
select ZLIB_INFLATE
help
Saying Y here includes support for SquashFS 4.0 (a Compressed
Read-Only File System). Squashfs is a highly compressed read-only
Expand Down Expand Up @@ -36,6 +35,19 @@ config SQUASHFS_XATTR

If unsure, say N.

config SQUASHFS_ZLIB
bool "Include support for ZLIB compressed file systems"
depends on SQUASHFS
select ZLIB_INFLATE
default y
help
ZLIB compression is the standard compression used by Squashfs
file systems. It offers a good trade-off between compression
achieved and the amount of CPU time and memory necessary to
compress and decompress.

If unsure, say Y.

config SQUASHFS_LZO
bool "Include support for LZO compressed file systems"
depends on SQUASHFS
Expand Down
3 changes: 2 additions & 1 deletion fs/squashfs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

obj-$(CONFIG_SQUASHFS) += squashfs.o
squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
squashfs-y += namei.o super.o symlink.o decompressor.o
squashfs-$(CONFIG_SQUASHFS_XATTR) += xattr.o xattr_id.o
squashfs-$(CONFIG_SQUASHFS_LZO) += lzo_wrapper.o
squashfs-$(CONFIG_SQUASHFS_XZ) += xz_wrapper.o
squashfs-$(CONFIG_SQUASHFS_ZLIB) += zlib_wrapper.o
6 changes: 6 additions & 0 deletions fs/squashfs/decompressor.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ static const struct squashfs_decompressor squashfs_xz_comp_ops = {
};
#endif

#ifndef CONFIG_SQUASHFS_ZLIB
static const struct squashfs_decompressor squashfs_zlib_comp_ops = {
NULL, NULL, NULL, ZLIB_COMPRESSION, "zlib", 0
};
#endif

static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
NULL, NULL, NULL, 0, "unknown", 0
};
Expand Down
4 changes: 4 additions & 0 deletions fs/squashfs/decompressor.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,8 @@ extern const struct squashfs_decompressor squashfs_xz_comp_ops;
extern const struct squashfs_decompressor squashfs_lzo_comp_ops;
#endif

#ifdef CONFIG_SQUASHFS_ZLIB
extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
#endif

#endif
3 changes: 0 additions & 3 deletions fs/squashfs/squashfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,3 @@ extern const struct inode_operations squashfs_symlink_inode_ops;

/* xattr.c */
extern const struct xattr_handler *squashfs_xattr_handlers[];

/* zlib_wrapper.c */
extern const struct squashfs_decompressor squashfs_zlib_comp_ops;

0 comments on commit cc6d349

Please sign in to comment.