@behlendorf behlendorf released this Apr 9, 2015 · 978 commits to master since this release

Supported Kernels

  • Compatible with 2.6.32 - 4.0 Linux kernels.

New Functionality

  • New feature flags (additional details below):
    • spacemap_histogram
    • extensible_dataset
    • bookmarks
    • enabled_txg
    • hole_birth
    • embedded_data
  • New asynchronous I/O (AIO) support.
  • New fallocate() FALLOC_FL_PUNCH_HOLE support.
  • New fragmentation metric in 'zpool list'.
  • New LZ4 compression of meta data.
  • New "redundant_metadata" property controls desired redundancy level.
  • New "overlay" property controls behavior for non-empty mount points.
  • New 'zpool list -v' shows individual disk capacity.
  • New 'zpool get -H' (scripted mode) support.
  • New 'zpool create -t' creates a pool with a temporary name.
  • New arc_summary.py script from FreeNAS.
  • New bash completion support.
  • New DTRACE_PROBES integrated with Linux tracepoints.
  • New compressed block histograms with zdb.
  • New verbatim pool imports with zdb.

New Feature Flags

  • spacemap_histogram

    This features allows ZFS to maintain more information about how free space is organized within the pool. If this feature is enabled, ZFS will set this feature to active when a new space map object is created or an existing space map is upgraded to the new format.

  • extensible_dataset

    This feature allows more flexible use of internal ZFS data structures, and exists for other features to depend on. This feature will be active when the first dependent feature uses it.

  • bookmarks

    This feature enables use of the zfs bookmark subcommand. Bookmarks mark the point in time when a snapshot was created, they can be used as the incremental source for a zfs send command. All bookmarks in the pool can be listed by running zfs list -t bookmark -r poolname.

  • enabled_txg

    Once this feature is enabled ZFS records the transaction group number in which new features are enabled. This has no user-visible impact, but other features may depend on this feature.

  • hole_birth

    This feature improves performance of incremental sends ("zfs send -i") and receives for objects with many holes. The most common case of hole-filled objects is zvols.

  • embedded_data

    This feature improves the performance and compression ratio of highly-compressible blocks. Blocks whose contents can compress to 112 bytes or smaller can take advantage of this feature.

Bug Fixes

  • Fixed I/O error on fs/vol delete corrupting space map.
  • Fixed corruption during spacemap reallocation.
  • Fixed corruption due to faulty logic when undirtying spill block.
  • Fixed stale bonus buffer in recycled dnode_t data corruption.
  • Fixed SA header size accounting.
  • Fixed O_APPEND flag for open(2).
  • Fixed deadlocks caused by direct reclaim by setting PF_FSTRANS.
  • Fixed deadlocks on suspended pools.
  • Fixed deadlock in zio pipeline caused by mutex_exit() race.
  • Fixed deadlock between 'zpool export' and 'zfs list'.
  • Fixed deadlock related to 'zfs rename'.
  • Fixed deadlock related to z_teardown_inactive_lock.
  • Fixed deadlock related to zfs_putpage().
  • Fixed deadlock for meta data intensive workloads.
  • Fixed panic when removing log device.
  • Fixed panic in metaslab init when space_map_open returned ENXIO.
  • Fixed panic due to dirtying inodes in a snapshot.
  • Fixed panic in dbufstat.py.
  • Fixed panic when performing ACL-to-mode translation on empty ACL.
  • Fixed SEEK_HOLE misreporting hole at end of file.
  • Fixed discrepancies in futimens() timestamps.
  • Fixed pool free space leak.
  • Fixed L2ARC compressed buffer leak.
  • Fixed 'zpool history -i' hang.
  • Fixed 'zpool import -t' it should not update the cache file.
  • Fixed multiple 'zfs send/recv' failure modes.
  • Fixed dracut to export ZFS root pool on shutdown.
  • Fixed restore_object now performed in a single transaction.
  • Fixed zvol symbolic link handling.
  • Fixed per-filesystem memory reclaim.
  • Fixed removal of SA in sa_modify_attrs().
  • Fixed readdir for .zfs/snapshot directory.
  • Fixed maximum zvol transfer size.
  • Fixed dmu_sync'ed holes should retain birth time.
  • Fixed ctor/dtor called on each alloc/free not once per slab.
  • Fixed ZED io-spare.sh script.
  • Fixed spurious timeouts when create large pools.
  • Improved 'zpool add' dry-run mode.
  • Improved 'zfs send -p' to only send properties for sent snapshots.
  • Improved 'zpool import' hostid behavior.
  • Improved 'zpool import -XF' behavior.
  • Improved 'zpool import' when multiple duplicate labels are found.
  • Improved 'zfs receive' performance by increasing pipe buffer size.
  • Improved 'zfs send' for small blocks by increasing prefetch.
  • Improved SPL kmem implementation.
  • Improved zvol_get_stats() performance.
  • Improved ashift auto-detect and management.
  • Improved documentation in man pages.
  • Improved handling of damaged block pointers.
  • Improved ZED logging
  • Rate limited debug backtraces to avoid impacting performance.
  • Assorted performance improvements.
  • Substantial changes to realign code base with illumos.
  • Over 200 additional bug fixes.