-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.csiden.org/r/166/
-----------------------------------------------------------

Review request for OpenZFS Developer Mailing List.


Bugs: 5661
    https://www.illumos.org/projects/illumos-gate//issues/5661


Repository: illumos-gate


Description
-------

Make lz4 the default compression algrithm for datasets with                     
 
the "compression=on" property setting.  lzjb will be used if the                
 
pool does not have "feature@lz4_compress" enabled.

uts/common/fs/zfs/sys/zio.h:
        Replace ZIO_COMPRESS_ON_VALUE with
        ZIO_COMPRESS_LEGACY_ON_VALUE and ZIO_COMPRESS_LZ4_ON_VALUE.
        The former is used for pools without "feature@lz4_compress"
        enabled.

        Allow ZIO_COMPRESS_ON on bootable datasets without
        restriction to certain values of (the now removed)
        ZIO_COMPRESS_ON_VALUE constant.  The boot loader
        knows how to decompress both lzjb and lz4, the two
        types of compression that ZIO_COMPRESS_ON can mean.
        The loader also does not write data, and existing
        blkptrs have the compression type explicitly listed
        (ZIO_COMPRESS_ON never hits the media), making
        ZIO_COMPRESS_ON bootfs safe.

uts/common/fs/zfs/dmu.c:
uts/common/fs/zfs/dmu_objset.c:
uts/common/fs/zfs/sys/zio.h:
uts/common/fs/zfs/zio_compress.c:
        Pass the spa into zio_compress_select() so that
        enabled spa features can be considered with selecting
        a compression algorithm.

uts/common/fs/zfs/dmu_objset.c:
uts/common/fs/zfs/zio_compress.c:
        Historically, callers of zio_compress_select()
        converted ZIO_COMPRESS_ON to ZIO_COMPRESS_ON_VALUE
        (on -> lzjb).  This made it impossible for
        zio_compress_select() to differentiate between a
        user explicitly requesting lzjb or the default
        compression algorithm.  Allow the parent/inherited
        value to be expressed as ZIO_COMPRESS_ON and convert
        it to the appropriate default compression algorithm
        within zio_compress_select().

uts/common/fs/zfs/dmu.c:
        In dmu_write_policy(), rather than duplicate logic
        which is now in zio_compress_select(), use
        zio_compress_select() to determine the correct
        compression algorithm to use for metadata.

uts/common/fs/zfs/dmu_objset.c:
        Allow the MOS to use the default compression algorithm
        rather than hard code lzjb.


Diffs
-----

  usr/src/uts/common/fs/zfs/zio_compress.c 
0d77f246c4a755cef5bbdc1e9cd3b34882b01730 
  usr/src/uts/common/fs/zfs/sys/zio.h 71bb6b96a01c51437cd5c6622e404531b5e8de17 
  usr/src/uts/common/fs/zfs/dmu_objset.c 
8593e2c94f6cb5e5b3866f5763f6230e25294716 
  usr/src/uts/common/fs/zfs/dmu.c c541e04d54297243c9d6a342b7a8df742e8d7ed2 

Diff: https://reviews.csiden.org/r/166/diff/


Testing
-------


Thanks,

Justin Gibbs

_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to