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

Andres Salomon
2011-10-14T14:14:45Z

On Fri, 14 Oct 2011 11:50:37 +0300
Artem Bityutskiy <dedekind1@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@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.
>