aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Lougher <phillip@lougher.demon.co.uk>2009-10-13 22:58:11 -0400
committerPhillip Lougher <phillip@lougher.demon.co.uk>2010-01-20 16:47:48 -0500
commitdc3256782f88602953676c447b243dedb1be99ad (patch)
treedb94f1e5aa06f8260631a5a21bea332c1b6e14c8
parent4c0f0bb2351bee3de8dd7715ee199454a59f1230 (diff)
Squashfs: add decompressor entries for lzma and lzo
Add knowledge of lzma/lzo compression formats to the decompressor framework. For now these are added as unsupported. Without these entries lzma/lzo compressed filesystems will be flagged as having unknown compression which is undesirable. Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
-rw-r--r--fs/squashfs/decompressor.c10
-rw-r--r--fs/squashfs/squashfs_fs.h4
2 files changed, 13 insertions, 1 deletions
diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
index 0072ccdac1e2..157478da6ac9 100644
--- a/fs/squashfs/decompressor.c
+++ b/fs/squashfs/decompressor.c
@@ -36,12 +36,22 @@
36 * Squashfs, allowing multiple decompressors to be easily supported 36 * Squashfs, allowing multiple decompressors to be easily supported
37 */ 37 */
38 38
39static const struct squashfs_decompressor squashfs_lzma_unsupported_comp_ops = {
40 NULL, NULL, NULL, LZMA_COMPRESSION, "lzma", 0
41};
42
43static const struct squashfs_decompressor squashfs_lzo_unsupported_comp_ops = {
44 NULL, NULL, NULL, LZO_COMPRESSION, "lzo", 0
45};
46
39static const struct squashfs_decompressor squashfs_unknown_comp_ops = { 47static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
40 NULL, NULL, NULL, 0, "unknown", 0 48 NULL, NULL, NULL, 0, "unknown", 0
41}; 49};
42 50
43static const struct squashfs_decompressor *decompressor[] = { 51static const struct squashfs_decompressor *decompressor[] = {
44 &squashfs_zlib_comp_ops, 52 &squashfs_zlib_comp_ops,
53 &squashfs_lzma_unsupported_comp_ops,
54 &squashfs_lzo_unsupported_comp_ops,
45 &squashfs_unknown_comp_ops 55 &squashfs_unknown_comp_ops
46}; 56};
47 57
diff --git a/fs/squashfs/squashfs_fs.h b/fs/squashfs/squashfs_fs.h
index 283daafc568e..36e1604ab1c1 100644
--- a/fs/squashfs/squashfs_fs.h
+++ b/fs/squashfs/squashfs_fs.h
@@ -211,7 +211,9 @@ struct meta_index {
211/* 211/*
212 * definitions for structures on disk 212 * definitions for structures on disk
213 */ 213 */
214#define ZLIB_COMPRESSION 1 214#define ZLIB_COMPRESSION 1
215#define LZMA_COMPRESSION 2
216#define LZO_COMPRESSION 3
215 217
216struct squashfs_super_block { 218struct squashfs_super_block {
217 __le32 s_magic; 219 __le32 s_magic;