[PATCH] jffs2: allow disabling of compression schemes at runtime

Andres Salomon dilinger at queued.net
Fri Oct 14 10:14:16 EDT 2011


On Fri, 14 Oct 2011 11:50:37 +0300
Artem Bityutskiy <dedekind1 at gmail.com> wrote:

> On Mon, 2011-10-03 at 19:16 -0700, Andres Salomon wrote:
> > Currently jffs2 has compile-time constants (and .config options)
> > regarding whether or not the various compression/decompression
> > drivers are built in and enabled.  This is fine for embedded
> > systems, but it clashes with distribution kernels.  Distro kernels
> > tend to turn on everything; this causes OpenFirmware to fall
> > over, as it only supports ZLIB decompression.  Booting a kernel
> > that has LZO compression enabled, writing to the boot partition,
> > and then rebooting causes OFW to fail to read the kernel from
> > the filesystem.  This is because LZO compression has priority
> > when writing new data to jffs2, if LZO is enabled.
> > 
> > To get around that, this patch adds jffs2 module params for each
> > compressor type that isn't decompression-only.  That means I can run
> > a kernel that has support for LZO and ZLIB decompression (allowing
> > me to read LZO data off of the root partition), while  disabling
> > LZO compression writes (jffs2.disable_lzo=1) so that the boot
> > partition stays compatible with OFW.
> > 
> > Signed-off-by: Andres Salomon <dilinger at queued.net>
> 
> You should use mount options instead. Invent nice mount options to
> configure compression strategy of JFFS2.

I thought about it, but currently jffs2 doesn't support parsing
mount options.  It seemed like a lot of extra code for such an obscure
feature, on a filesystem that's merely in maintenance mode (I don't know
if anyone else has run into the same issue that I have).  However, I can
do that if desired.

> 
> Or you can simply implement the same option as UBIFS has: compr=xxx.
> 

Yep.

> See Documentation/filesystems/ubifs.txt
> 
> With this option you set the default compressor which is use when
> writing, and on reading all decompression are supported, seems like
> exactly what you want. You can also look how it is implemented in
> UBIFS for reference.
> 




More information about the linux-mtd mailing list