The "compression algorithm" in `fs/ext2/none.c' just returns 0, meaning "I couldn't compress this cluster to any smaller than it is, so just store it in uncompressed form."
From the release notice for e2compr-0.3.1:
One problem with using e2compr has been that while the kernel does compression, the whole machine is effectively frozen. [This has been largely fixed since release 0.3.1.]
While this has not been fixed, there's now a workaround that some people may find very useful.
Once your files have been compressed, use `touch /scratch/file; chattr -m none FILES_AND_DIRS'. Further writes to these files and within these directories will not use compression. Then when you want the compression to take place:
find files_and_dirs -type f -newer /scratch/file -print0 | xargs -0 chattr -m gzip9; touch /scratch/file2; find files_and_dirs -type f -newer /scratch/file -print0 | xargs -0 chattr -m none; mv /scratch/file2 /scratch/file(Of course `/scratch/file', `/scratch/file2' and files_and_dirs should be replaced with whatever's suitable/applicable for you.)
Changing the method from `none' to some other algorithm (using chattr) makes it apply the new compression algorithm to any uncompressed clusters (and only uncompressed clusters). (This is a special case for the `none' algorithm. Comments welcome on the e2compr list.)
Note that the previously-release chattr and lsattr didn't accept the `none' algorithm, so you must get the new e2compr program distribution to use this.
Not a perfect solution, but it's a useful trick.
Go to the first, previous, next, last section, table of contents.