Skip to content
Pre-release
Pre-release

@behlendorf behlendorf released this Oct 19, 2020 · 143 commits to master since this release

Supported Platforms:

  • Linux: compatible with 3.10 - 5.9 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

Changes

  • zed syslog entries drop important info #10967
  • FreeBSD: add missing fplookup_vexec handler to special vop vectors #11066
  • FreeBSD: g/c unused vop vector zfsctl_ops_shares_dir #11066
  • Ignore special vdev ashift for spa ashift min/max #9363 #9364 #11053
  • Fix crash caused by invalid snapshot names in redactnvl #11048
  • Fix incorrect deletion order in range_tree_add_impl gap case #11044 #11056
  • FreeBSD: fix panic due to tqid overflow #11059
  • Cross-platform acltype #10520
  • FreeBSD: make adjustments for the standalone environment #10998
  • aarch64: Use proper guards for NEON instructions #11055
  • dmu.h: remove stale declaration dmu_objset_snapshot_tmp #11047
  • FreeBSD: use cache_rename if available #11045
  • blkg_tryget config test: initialize struct #10713 #11049
  • Increase Supported Linux Kernel to 5.9 #11050
  • FreeBSD: Improve libzfs_error_init messages #11033
  • Expose zfetch_max_idistance tunable #11038
  • zil_parse: make callback parameters const #11020
  • Linux: Initialize zp in zfs_setattr_dir #10043 #11025
  • Replace ZFS on Linux references with OpenZFS #11007
  • Fix Linux modules uninstall #11032
  • ZTS: Fix path to /dev/null in nopwrite_recsize #11026
  • Fix ubsan: shift exponent is too large #9744 #11024
  • libzfs_sendrecv: zfs_send: remove unused pipefd and tid variables #11021
  • Make dbufstat work on FreeBSD #11008
  • FreeBSD: Sort and dedup includes in kmod_core #11000
  • docs: update README's installation link #11022
  • zdb should not output binary data on terminal #11006
  • FreeBSD: Sort out kernel FPU headers for 12.1-REL #11005
  • Fix EIO after resuming receive of new dataset over an existing one #10995 #10999
  • Throw const on some strings #10997
  • Mismatched nvlist names in zfs_keys_send_space #10978
Assets 4

@tonyhutter tonyhutter released this Oct 6, 2020 · 1190 commits to master since this release

Supported Kernels

  • Compatible with 2.6.32 - 5.9 Linux kernels

Changes

  • Fix buggy procfs_list_seq_next warning #10984 #10996
  • Fix CONFIG_DEBUG_LOCK_ALLOC configure check #10991
  • Fix objtool configure check #10990
  • Fix PREEMPTION=y and BLK_CGROUP=y config on arm64 #8545 #9948 #10416 #10973
  • Update zts-report.py with additional tests
  • Fix another dependency loop #10356 #10388
  • Fix a dependency loop #10388
  • Verify zfs module loaded before starting services #10663
  • Verify zfs module loaded before starting services #10627
  • Mark lua setjmp/longjmp for powerpc weak #10795
  • Make unloading the key more robust #10477
  • BindsTo dataset keyload unit to mount associate unit #10477
  • Ensure mount unit pilots when its ZFS key is loaded #10477
  • Resilver restarts unnecessarily when it encounters errors #10291
  • ZED: Do not offline a missing device if no spare is available #10577 #10730
  • ZTS: Improve zts-auto_offline_001_pos #9827
  • Fix inability to destroy snapshot used over NFS #6000 #10783
  • Export dmu_offset_next() symbol #10796
  • Fix lua stack overflow on recursive call to gsub() #10611 #10613
  • Use boot_ncpus in place of max_ncpus in taskq_create #10282
  • Initialize mmp_last_write when the mmp thread starts (#10912) #10873
  • Appease GCC sprintf warnings found on Fedora 32/GCC 10.0.1 #10712 #10766
  • Switch off -Wmissing-prototypes for libgcc math functions #10470
  • Fix gcc10.1 truncation error #10433
  • Linux 5.9 compat: NR_SLAB_RECLAIMABLE (#10865) #10834
  • Linux 5.7 compat: Include linux/sched.h in spl/sys/mutex.h #10741
  • Linux 5.9 compat: make_request_fn replaced with submit_bio interface #10696
  • Linux 5.9 compat: Update NR_SLAB_RECLAIMABLE to NR_SLAB_RECLAIMABLE_B #10696
  • Linux 5.9 compat: add linux/blkdev.h include 222e0ea
  • lib/libzfs, rpm: Install pkgconfig files in the correct directory (#10628)
  • Linux 5.8 compat: __vmalloc() #10422
  • Replace sprintf()->snprintf() and strcpy()->strlcpy() c9e319f
  • Fix gcc 10.1 stringop-truncation error #10346
  • RPM: Remove old versions of DKMS on upgrade #10327
  • Add longjmp support for Thumb-2 #7408 #9957 #9967
Assets 5
Pre-release
Pre-release

@behlendorf behlendorf released this Oct 1, 2020 · 143 commits to master since this release

Supported Platforms:

  • Linux: compatible with 3.10 - 5.8 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

Changes

  • Fix buggy procfs_list_seq_next warning #10984 #10996
  • FreeBSD: Fix legacy compat for platform IOCs #10994
  • Eliminate gratuitous bzeroing in dbuf_stats_hash_table_data #10993
  • do a cyclic seek for unused memory objects in pool #10938 #10969
  • Drop references when skipping dmu_send due to EXDEV #10919
  • Add intel_QAT patches #10961 #10962
  • Use known license string for zzstd #10982 #10992
  • Fix CONFIG_DEBUG_LOCK_ALLOC configure check #10991
  • Fix objtool configure check #10990
  • Note that keys must be loaded for 'zpool remove' #10939 #10948
  • Document branching structure #10976
  • zfs userspace: use zfs_path_to_zhandle so argument can be a path #8915
  • Add DB_RF_NOPREFETCH to dbuf_read()s in dnode.c #10877 #10953
  • Fix PREEMPTION=y and BLK_CGROUP=y config on arm64 #8545 #9948 #10416 #10973
  • FreeBSD: update cache_purgevfs usage after 1300117 version bump #10970
  • FreeBSD: Code cleanup in zio_crypt #10884
  • Prune dead branch reported by Coverity #10884
  • zpool command complains about /etc/exports.d #10785 #10934
  • zfs_log_write: simplify data copying code for WR_COPIED records #10956
  • FreeBSD: Add support for procfs_list #10890
  • FreeBSD: Don't save user FPU context in kernel threads #10899
  • Don't set numobjs to UINT64_MAX or near it #10911 #10916
  • contrib/initramfs: fix shellcheck and checkbashisms errors with shebang #10908
  • Fix a logic bug in the FreeBSD getpages VOP #10519 #10960
  • FreeBSD: Reduce stack usage of Lua #10959
  • Annontate FreeBSD sysctls with CTLFLAG_MPSAFE #10836
  • Fix switch statement indentation in the FreeBSD kstat code #10950
Assets 4
Pre-release
Pre-release

@behlendorf behlendorf released this Sep 18, 2020 · 143 commits to master since this release

Supported Platforms:

  • Linux: compatible with 3.10 - 5.8 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

Changes

  • vdev_ashift should only be set once #10932
  • libzfs: Don't leak buf if nvlist is too large #10882
  • pool may become suspended during device expansion #10897
  • zdb leak detection fails with in-progress device removal #10920
  • FreeBSD: Do not copy vp into f_data for DTYPE_VNODE files #10929
  • Need a long hold in zpl_mount_impl #10936
  • libzfsbootenv: lzbe_nvlist_set needs to store bootenv version VB_NVLIST #10937
  • Rename acltype=posixacl to acltype=posix #10918
  • cmd/zgenhostid: replace with simple c implementation #10887 #10925
  • Fix stack frame size: dnode_dirty_l1range() #10879
  • dmu_redact_snap: fix possible memleak #10879
  • Fix stack frame size: dmu_redact_snap() #10879
  • Fix stack frame size: spa_livelist_delete_cb() #10879
  • zpoolprops.8: fix raidz par[i]ty typo #10923
  • zfs label bootenv should store data as nvlist #10774
  • Linux: Prevent destruction while showing mount devname #10892 #10927
  • config/zfs-build.m4: never define _initramfs in RPM_DEFINE_UTIL #10898
  • libzutil depends on libnvpair #10915
  • FreeBSD: convert teardown inactive lock to a read-mostly sleepable lock #10896
  • Force the use of '.' as decimal separator. #10878
  • Initialize mmp_last_write when the mmp thread starts #10873
  • FreeBSD: drop dependency on cryptodev module #10901
  • Introduce ZFS module parameter l2arc_mfuonly #10710
  • Avoid possibility of division by zero #10894
  • dnode_special_open() error: unchecked function return 'zrl_tryenter' #10876
  • Add a missing option prefix - in zfs-tests.sh usage() #10893
  • Display pbkdf2iters property as plain number #10871
  • libshare: Add missing headers for nfs.c #10880
  • FreeBSD: reduce priority of ZIO_TASKQ_ISSUE writes by a larger value #10872
  • Spruce up pkg-config files for libzfs/libzfs_core #10869
  • man: Cross-reference zfs-load-key(8) for ENCRYPTION mention #10866
  • man: Add zfs rename -r to zfs-rename(8) SYNOPSIS #10866
  • Sequential scrub and resilver updated comments
  • Avoid posting duplicate zpool events #10861
  • nowait synctask must succeed #10855
  • Retain thread name when resuming a zthr #10881
  • Fixes for running FreeBSD buildworld on Linux/macOS hosts #10863
  • Replace cv_{timed}wait_sig with cv_{timed}wait_idle where appropriate #10843
  • Links in Source Files #10859
  • zvol: unsigned off can not be less than zero #10867
  • Fix -Werror,-Wmacro-redefined in limits.h #10864
  • Make spa_stats.c tunables visible on FreeBSD #10858
  • FreeBSD: Fix up after spa_stats.c move #10860
  • Add 'zfs rename -u' to rename without remounting #10839
  • FreeBSD: Remove unused SECLABEL code #10847
  • libspl: Provide platform-specific zone implementations #10851
  • FreeBSD: Simplify INGLOBALZONE #10851
  • FreeBSD: Define crgetzoneid appropriately #10851
  • zio_ereport_post() and zio_ereport_start() return values are ignored #10857
  • Typo Correction #10850
  • Move spa_stats.c to common code #10842
  • FreeBSD: Fix spurious failure in zvol_geom_open #10841
  • FreeBSD: add support for KSTAT_TYPE_RAW #10836
  • Linux 5.9 compat: NR_SLAB_RECLAIMABLE #10834
  • Fix another dependency loop #10356 #10388
  • Fix a dependency loop #10388
  • config/zfs-build.m4: add --with-vendor flag #10385
  • Fix definition of BLKGETSIZE64 on FreeBSD #10818
  • module/zstd: pass -U__BMI__ #10758 #10829
  • Add the Xr's to the SEE ALSO as well #10589
  • dnode_sync is careless with range tree #10708 #10823
  • Fix NEWS file #10824
  • zpool: Change base URL for ZFS messages to openzfs-docs #10820
  • Remove duplicate dnode.h include #10816 #10819
  • Always track temporary fses and snapshots for accounting #10791
  • Remove pragma ident lines #10810
  • FreeBSD: disable neon usage #10809
  • Introduce limit on size of L2ARC headers #10765
Assets 4
Pre-release
Pre-release

@behlendorf behlendorf released this Aug 25, 2020 · 143 commits to master since this release

Supported Platforms:

  • Linux: compatible with 3.10 - 5.8 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

New Features

  • Unified code base for Linux and FreeBSD
  • Redacted zfs send/recv
  • Persistent L2ARC
  • Sequential resilvering
  • zstd compression
  • Log spacemaps
  • Fast clone deletion
  • Sectional zfs/zpool man pages
  • Added zpool wait subcommand
  • Improved zfs share scalability
  • Allow zpool split after removing a mirror.
Assets 4

@tonyhutter tonyhutter released this May 12, 2020 · 36 commits to zfs-0.8-release since this release

Supported Kernels

  • Compatible with 2.6.32 - 5.6 Linux kernels

Changes

  • Add missing zfs_refcount_destroy() in key_mapping_rele() #10246
  • Linux 5.7 compat: blk_alloc_queue() #10181 #10187
  • Prefix struct rangelock #9534
  • Fix icp include directories for in-tree build #10021
  • ICP: gcm-avx: Support architectures lacking the MOVBE instruction #10029
  • ICP: Improve AES-GCM performance #9749
  • Bugfix/fix uio partial copies #8673 #10148
  • Prevent deadlock in arc_read in Linux memory reclaim callback #9987
  • Fix infinite scan on a pool with only special allocations #10106 #8694
  • Static symbols exported by ICP #9791
  • Linux 5.6 compat: struct proc_ops #9961
  • Linux 5.6 compat: timestamp_truncate() #9956 #9961
  • Linux 5.6 compat: ktime_get_raw_ts64() #10052 #10064
  • Linux 5.6 compat: time_t #10052 #10064
  • Fix static data to link with -fno-common #9943
  • zfs_get: change time format string from %k to %H #10090 #10153
  • Deprecate deduplicated send streams #7887 #10117
  • Fix zfs-functions packaging bug
  • initramfs: Eliminate substitutions
  • Delete built init scripts in make clean
  • Restore :: in Makefile.am #9210
  • Make init scripts depend on Makefile
  • Systemd mount generator: don't fail keyload from file if already loaded #10103
  • Systemd mount generator: Generate noauto units; add control properties #9649
  • Systemd mount generator: Silence shellcheck warnings #9649
  • Fix CONFIG_MODULES=no Linux kernel config #9887 #10063
  • Linux 5.5 compat: blkg_tryget() #9745 #10072
  • zfs-mount-generator: Fix escaping for / #9970
  • Missed wakeup when growing kmem cache #9989
  • Order zfs-import-*.service after multipathd #9863
  • Avoid here-documents in systemd mount generator #9802
Assets 5

@tonyhutter tonyhutter released this Jan 23, 2020 · 68 commits to zfs-0.8-release since this release

Supported Kernels

  • Compatible with 2.6.32 - 5.4 Linux kernels

Changes

  • Fix zfs-0.8.3 "qat.h"
  • ZTS: Fixes for spurious failures of resilver_restart_001 test #9677 #9703
  • Prevent unnecessary resilver restarts #9155 #9378 #9551 #9588
  • Fix QAT allocation failure return value #9784 #9788
  • Fix zfs-0.8.3 zfs_receive_raw test case
  • Fix zfs-0.8.3 'make lint' warnings
  • ZTS: Cleanup partition tables #9806
  • zdb: print block checksums with 6 d's of verbosity
  • zfs-load-key.sh: ${ZFS} is not the zfs binary #9780
  • ZTS: Fix pool_state cleanup #9777
  • ZTS: Replace /var/tmp with $TEST_BASE_DIR #9775
  • ZTS: zfs_program_json #9774
  • ZTS: devices_001_pos and devices_002_neg #9773
  • Avoid some crashes when importing a pool with corrupt metadata #9022
  • In initramfs, do not prompt if keylocation is "file://" #9764
  • libspl: declare aok extern in header #9752
  • Cancel initialize and TRIM before vdev_metaslab_fini() #8602 #9751
  • ZTS: Test case failures #9769
  • Update maximum kernel version to 5.4 #9754 #9759
  • ZTS: Various test case fixes #9748
  • Fix for ARC sysctls ignored at runtime
  • cppcheck: (warning) Possible null pointer dereference: nvh #9732
  • cppcheck: (error) Address of local auto-variable assigned #9732
  • cppcheck: (error) Null pointer dereference: who_perm #9732
  • cppcheck: (warning) Possible null pointer dereference: dnp #9732
  • cppcheck: (error) Memory leak: vtoc #9732
  • cppcheck: (error) Shifting signed 64-bit value by 63 bits #9732
  • cppcheck: (error) Uninitialized variable #9732
  • cppcheck: (error) Uninitialized variable #9732
  • Exchanged two "${ZFS} get -H -o value" commands #9736
  • Create symbolic links in /dev/disk/by-vdev for nvme disk devices #9730
  • Force systems with kernel option "quiet" to display prompt for password #9731
  • initramfs: setup keymapping and video for prompts #9723
  • Don't fail to apply umask for O_TMPFILE files #8997 #8998
  • Allow empty ds_props_obj to be destroyed #9704
  • Fix use-after-free of vd_path in spa_vdev_remove() #9706
  • zio_decompress_data always ASSERTs successful decompression #9612 #9630
  • Exclude data from cores unconditionally and metadata conditionally #9691
  • ZTS: Fix zpool_reopen_001_pos #9680
  • Set send_realloc_files.ksh to use properties.shlib #9679
  • Fix reporting of L2ARC hits/misses in arc_summary3 #9669
  • Fix zdb_read_block using zio after it is destroyed #9644 #9657
  • Fix use-after-free in case of L2ARC prefetch failure #9648
  • Increase allowed 'special_small_blocks' maximum value #9131 #9355
  • Adapt gitignore for modules #9656
  • Fix encryption logic in systemd mount generator #9611
  • Fix non-absolute path in systemd mount generator #9611
  • Fix small typo in systemd mount generator #9611
  • Implement -A (ignore ASSERTs) for zdb #9610
  • Remove zfs_vdev_elevator module option #9417 #9609
  • Add display of checksums to zdb -R #9607
  • Check for unlinked znodes after igrab() #9602
  • ZTS: tst.terminate_by_signal increase test threshold #9601
  • ZTS: Casenorm fix unicode interpretation #8812
  • Remove requirement for -d 1 for zfs list and zfs get with bookmarks #9589
  • Break out of zfs_zget early if unlinked znode #9583
  • Remove inappropiate error message suggesting to use '-r' #9574
  • Change zed.service to zfs-zed.service in man page #9581
  • Prevent NULL pointer dereference in blkg_tryget() on EL8 kernels #9546 #9577
  • Add missing documentation for some KMC flags #9034
  • Fix zpool create -o <property> error message #9550 #9568
  • Improve logging of 128KB writes #9409
  • Skip loading already loaded key #9495 #9529
  • Add a notice in /etc/defaults/zfs for systemd users #9544
  • Include prototypes for vdev_initialize #9535
  • dracut/zfs-load-key.sh: properly remove prefixes #9520
  • Fix contrib/zcp/Makefile.am #9527
  • Fix 'zfs change-key' with unencrypted child #9524
  • Fix zpool history unbounded memory usage #9516
  • Fix incremental recursive encrypted receive #9494
  • ZTS: Consistency pass for .ksh extensions #9502
  • Use correct format string when printing int8 #9486
  • ZTS: Written props test fails with 4k disks #9477
  • Name anonymous enum of KMC_BIT constants #9478
  • Update skc_obj_alloc for spl kmem caches that are backed by Linux #9474
  • Modify sharenfs=on default behavior #9397 #9425
  • ZTS: Fix zpool_status_-s #9451
  • Implement ZPOOL_IMPORT_UDEV_TIMEOUT_MS #9436
  • Clarify loop variable name in zfs copies test #9445
  • Fix some style nits in tests #9447
  • Fix pool creation with feature@allocation_classes disabled #9427 #9429
  • Update zfs program command usage #9056 #9428
  • ZTS: Fix mmp_hostid test #9349
  • module/Makefile.in: don't run xargs if empty #9418
  • ZTS: Fix trim/trim_config and trim/autotrim_config #9399
  • Fix automount for root filesystems #9381 #9384
  • Rename rangelock_ functions to zfs_rangelock_ #9402
  • ZTS: Fix upgrade_readonly_pool #9400
  • Workaround to avoid a race when /var/lib is a persistent dataset #9360
  • Fix for zfs-dracut regression #8913 #9379
  • Perform KABI checks in parallel #8547 #9132 #9341
  • SIMD: Use alloc_pages_node to force alignment #9608 #9674
  • Linux 5.0 compat: SIMD compatibility
  • ZTS: harden xattr/cleanup.ksh #9358
  • Add warning for zfs_vdev_elevator option removal #9317
  • diff_cb() does not handle large dnodes #7678 #8931 #9343
  • Use signed types to prevent subtraction overflow #9355
  • Refactor libzfs_error_init newlines #9330
  • Device removal of indirect vdev panics the kernel #9327
  • ZTS: Fix /usr/bin/env: 'python2': No such file or directory #9325
  • Fix clone handling with encryption roots #9267 #9294
  • Canonicalize Python shebangs #9314
  • Fix stalled txg with repeated noop scans #9300
  • ZTS: Introduce targeted corruption in file blocks #9288
  • Clean up do_vol_test in zfs_copies tests #9286
  • Fix noop receive of raw send stream #9221 #9173
  • Clean up zfs_clone_010_pos #9284
  • Refactor checksum operations in tests #9280
  • Use the right booleans #9264
  • Fix panic on DilOS with kstat per dataset statistics #9254 #9151
  • ZTS: Fix removal_cancel.ksh #9259
  • maxinflight can overflow in spa_load_verify_cb() #9272
  • Fix typos #9251
  • Fix typos in tests/ #9250
  • Fix typos in tests/ #9249
  • Fix typos in tests/ #9247
  • Fix typos in tests/ #9246
  • Fix typos in tests/ #9244
  • Fix typos in tests/ #9243
  • Fix typos in tests/ #9242
  • Fix typos in module/zfs/ #9240
  • Fix typos in lib/ #9237
  • Fix typos in tests/ #9248
  • Fix typos in tests/
  • Fix typos in module/ #9241
  • Fix typos in modules/icp/ #9239
  • Fix typos in include/ #9238
  • Fix typos in etc/ #9236
  • Fix typos in contrib/ #9235
  • Fix typos in cmd/ #9234
  • Fix typos in man/ #9233
  • Fix typos in config/ #9232
  • Fix refquota_007_neg.ksh #9257
  • Prevent metaslab_sync panic due to spa_final_dirty_txg #9185 #9186 #9231 #9253
  • Simplify deleting partitions in libtest #9224
  • Use compatible arg order in tests #9228
  • Use smaller default slack/delta value for schedule_hrtimeout_range() #9217
  • Prefer for (;;) to while (TRUE) #9219
  • Add regression test for "zpool list -p" #9134
  • Split argument list, satisfy shellcheck SC2086 #9212
  • ZTS: Fix in-tree dbufstats test case #9118 #9196
  • Fix install error introduced by #9089
  • Document ZFS_DKMS_ENABLE_DEBUGINFO in userland configuration #9191
  • Dedup IOC enum values in libzfs_input_check #9188
  • Enhance ioctl number checks #9187
  • ZTS: Fix vdev_zaps_005_pos on CentOS 6 #9199
  • Minor cleanup in Makefile.am #9189
  • zfs-functions.in: in_mtab() always returns 1 #9168
  • Fix lockdep circular locking false positive involving sa_lock #9110
  • Set "none" scheduler if available (initramfs) #9042
  • Add more refquota tests #9139
  • initramfs: fixes for (debian) initramfs #7904 #9089
  • dmu_tx_wait() hang likely due to cv_signal() in dsl_pool_dirty_delta() #9137
  • Improve write performance by using dmu_read_by_dnode() #9156
  • Assert that a dnode's bonuslen never exceeds its recorded size #8348
  • Make txg_wait_synced conditional in zfsvfs_teardown #9115
  • Prevent race in blkptr_verify against device removal #9112
  • Fix device expansion when VM is powered off #9111
  • spa_load_verify() may consume too much memory #9146
  • Change boolean-like uint8_t fields in znode_t to boolean_t #9092
  • Drop KMC_NOEMERGENCY #9119
  • Don't wakeup unnecessarily in 'zpool events -f' #9091
  • Test cancelling a removal in ZTS #9101
  • lockdep false positive - move txg_kick() outside of ->dp_lock #9094
  • Add channel program for property based snapshots #8443 #9050
  • install path fixes #9087
  • Don't activate metaslabs with weight 0 #8968
  • OpenZFS 9318 - vol_volsize_to_reservation does not account for raidz skip blocks #8973
  • Concurrent small allocation defeats large allocation #8843
  • Fix bp_embedded_type enum definition #8951
  • OpenZFS 9425 - channel programs can be interrupted #8904
  • looping in metaslab_block_picker impacts performance on fragmented pools #8877
  • single-chunk scatter ABDs can be treated as linear #8580
  • make zil max block size tunable #8865
Assets 5

@tonyhutter tonyhutter released this Sep 26, 2019 · 243 commits to zfs-0.8-release since this release

Supported Kernels

  • Compatible with 2.6.32 - 5.4 Linux kernels

Changes

  • Disabled resilver_defer feature leads to looping resilvers #9299 #9338
  • Fix dsl_scan_ds_clone_swapped logic #9140 #9163
  • Scrubbing root pools may deadlock on kernels without elevator_change() (#9321) #9321
  • QAT related bug fixes #9276 #9303
  • kmodtool: depmod path #8724 #9310
  • Fix /etc/hostid on root pool deadlock #9256 #9285
  • BuildRequires libtirpc-devel needed for RHEL 8 #9289
  • Fix zpool subcommands error message with some unsupported options #9270
  • Fix zfs-dkms .deb package warning in prerm script #9271
  • zvol_wait script should ignore partially received zvols #9260
  • New service that waits on zvol links to be created #8975
  • Always refuse receving non-resume stream when resume state exists #9252
  • Fix Intel QAT / ZFS compatibility on v4.7.1+ kernels #9268 #9269
  • etc/init.d/zfs-functions.in: remove arch warning
  • zfs_handle used after being closed/freed in change_one callback #9165
  • Fix zil replay panic when TX_REMOVE followed by TX_CREATE #7151 #8910 #9123 #9145
  • zfs_ioc_snapshot: check user-prop permissions on snapshotted datasets #9179 #9180
  • Fix Plymouth passphrase prompt in initramfs script #9202
  • Fix deadlock in 'zfs rollback' #9203
  • Make slog test setup more robust #9194
  • zfs-mount-genrator: dependencies should be space-separated #9174
  • Linux 5.3: Fix switch() fall though compiler errors #9170
  • Linux 5.3 compat: Makefile subdir-m no longer supported #9169
  • Fix out-of-order ZIL txtype lost on hardlinked files #8769 #9061
  • Increase default zcmd allocation to 256K #9084
  • Improve performance by using dmu_tx_hold_*_by_dnode() #9081
  • Fix channel programs on s390x #8992 #9080
  • Race between zfs-share and zfs-mount services #9083
  • Implement secpolicy_vnode_setid_retain() #9035 #9043
  • zed crashes when devid not present #9054 #9060
  • Don't directly cast unsigned long to void* #9065
  • Fix module_param() type for zfs_read_chunk_size #9051
  • Move some tests to cli_user/zpool_status #9057
  • Race condition between spa async threads and export #9015 #9044
  • hdr_recl calls zthr_wakeup() on destroyed zthr #9047
  • Fix wrong comment on zcr_blksz_{min,max} #9052
  • Retire unused spl_{mutex,rwlock}_{init_fini} #9029
  • Linux 5.3 compat: retire rw_tryupgrade() #9029
  • Linux 5.3 compat: rw_semaphore owner #9029
  • Fix lockdep recursive locking false positive in dbuf_destroy #8984
  • Add missing __GFP_HIGHMEM flag to vmalloc #9031
  • Use zfsctl_snapshot_hold() wrapper #9039
  • Minor style cleanup #9030
  • Fix get_special_prop() build failure #9020
  • systemd encryption key support #8750 #8848
  • Drop redundant POSIX ACL check in zpl_init_acl() #9009
  • Export dnode symbols #9027
  • Ensure dsl_destroy_head() decrypts objsets #9021
  • Disable unused pathname::pn_path* (unneeded in Linux) #9025
  • Fixes: #8934 Large kmem_alloc #8934 #9011
  • Fix ZTS killed processes detection #9003
  • pkg-utils python sitelib for SLES15 #8969
  • Fix race in parallel mount's thread dispatching algorithm #8450 #8833 #8878
  • Fix dracut Debian/Ubuntu packaging #8990 #8991
  • Remove VERIFY from dsl_dataset_crypt_stats() #8976
  • Improve "Unable to automount" error message. #8959
  • Check b_freeze_cksum under ZFS_DEBUG_MODIFY conditional #8979
  • Fix error text for EINVAL in zfs_receive_one() #8977
  • Don't use d_path() for automount mount point for chroot'd process #8903 #8966
  • nopwrites on dmu_sync-ed blocks can result in a panic #8957
  • Avoid extra taskq_dispatch() calls by DMU #8909
  • -Y option for zdb is valid #8926
  • Fix error message on promoting encrypted dataset #8905 #8935
  • Fix out-of-tree build failures #8921 #8943
  • dn_struct_rwlock can not be held in dmu_tx_try_assign() #8929
  • Remove arch and relax version dependency #8914
  • Add libnvpair to libzfs pkg-config #8919
  • Let zfs mount all tolerate in-progress mounts #8881
  • zstreamdump: add per-record-type counters and an overhead counter #8432
  • Fix comments on zfs_bookmark_phys #8945
  • Add SCSI_PASSTHROUGH to zvols to enable UNMAP support #8933
  • Prevent pointer to an out-of-scope local variable #8924 #8940
  • dedup=verify doesn't clear the blkptr's dedup flag #8936
  • Update vdev_ops_t from illumos #8925
  • Allow unencrypted children of encrypted datasets #8737 #8870
  • Replace whereis with type in zfs-lib.sh #8920 #8938
  • Use ZFS_DEV macro instead of literals #8912
  • Fix memory leak in check_disk() #8897 #8911
  • kmod-zfs-devel rpm should provide kmod-spl-devel #8930
  • ZTS: Fix mmp_interval failure #8906
  • Minimize aggsum_compare(&arc_size, arc_c) calls. #8901
  • Python config cleanup #8895
  • lz4_decompress_abd declared but not defined #8894
  • panic in removal_remap test on 4K devices #8893
  • compress metadata in later sync passes #8892
  • Move write aggregation memory copy out of vq_lock #8890
  • Restrict filesystem creation if name referred either '.' or '..' #8842 #8564
  • ztest: dmu_tx_assign() gets ENOSPC in spa_vdev_remove_thread() #8889
  • Fix lockdep warning on insmod #8868 #8884
  • fat zap should prefetch when iterating #8862
  • Target ARC size can get reduced to arc_c_min #8864
  • Fix typo in vdev_raidz_math.c #8875 #8880
  • Improve ZTS block_device_wait debugging #8839
  • Block_device_wait does not return an error code #8839
  • Remove redundant redundant remove #8839
  • Fix logic error in setpartition function #8839
  • Allow metaslab to be unloaded even when not freed from #8837
  • Avoid updating zfs_gitrev.h when rev is unchanged #8860
  • l2arc_apply_transforms: Fix typo in comment #8822
  • Reduced IOPS when all vdevs are in the zfs_mg_fragmentation_threshold #8859
  • Drop objid argument in zfs_znode_alloc() (sync with OpenZFS) #8841
  • Remove vn_set_fs_pwd()/vn_set_pwd() (no need to be at / during insmod) #8826
  • grammar: it is / plural agreement #8818
  • Refactor parent dataset handling in libzfs zfs_rename() #8815
  • Update comments to match code #8759
  • Update descriptions for vnops #8767
  • Drop local definition of MOUNT_BUSY #8765
  • kernel timer API rework #8647
Assets 5

@tonyhutter tonyhutter released this Jun 14, 2019 · 352 commits to zfs-0.8-release since this release

Supported Kernels

  • Compatible with 2.6.32 - 5.1 Linux kernels.

Changes

  • Fix comparison signedness in arc_is_overflowing() #8873
  • Fix incorrect error message for raw receive #8863
  • arc_summary: prefer python3 version and install when there is no python #8851
  • Fix %post and %postun generation in kmodtool #8866
  • Reinstate raw receive check when truncating #8852 #8857
  • If $ZFS_BOOTFS contains guid, replace the guid portion with $pool #8356
  • Fix integer overflow of ZTOI(zp)->i_generation #8858
  • hkdf_test binary should only have one icp instance #8850
  • Fixed a small typo in man/man1/raidz_test.1 #8855
  • Allow TRIM_UNUSED_KSYM when build as a builtin-module #8820
  • Make Python detection optional and more portable #8809 #8731
  • Wait in 'S' state when send/recv pipe is blocking #8733 #8752
  • Make zfs_async_block_max_blocks handle zero correctly #8829 #8289
  • Revert "Report holes when there are only metadata changes" #8816 #8834
  • Add link count test for root inode #8732
  • Exclude log device ashift from normal class #8735
  • Fix integer overflow in get_next_chunk() #8778 #8797
  • Double-free of encryption wrapping key due to invalid pool properties #8791
  • tests: fix cosmetic permission issues during 'make install' #8803
  • test-runner.py: change shebang to python3 #8803
  • Endless loop in zpool_do_remove() on platforms with unsigned char #8789
  • Fix embedded bp accounting in count_block() #8800 #8766
  • Disable parallel processing for 'zfs mount -l' #8762 #8811
  • Linux 5.2 compat: Directly call wait_on_page_bit() #8794
  • Linux 5.2 compat: Fix config/kernel-shrink.m4 test failure #8776
  • Linux 5.2 compat: Remove config/kernel-set-fs-pwd.m4 #8777
  • zpool: status -t is not documented in help message #8782
  • zfs-tests: fix warnings when packaging some .shlib files #8787
  • VERIFY3P() message is missing a space character #8786
  • zfs-tests: verify zfs(8) and zpool(8) help message is under 80 columns #8785
  • zfs: don't pretty-print objsetid property #8784
  • zfs: missing newline character in zfs_do_channel_program() error message #8783
  • Fix ksh-path for random_readwrite_fixed.ksh #8779
  • Linux 2.6.39 compat: Test if kstrtoul() exists #8760 #8761
  • Device removal panics on 32-bit systems #8790
  • zpool: trim -p is not a valid option #8781
  • Fix coverity defects: CID 186143 #8788
  • Rename reservation tests from *.sh to *.ksh #8729
  • Fix kstat state update during pool transition #8746
  • Linux 5.2 compat: rw_tryupgrade() #8730
Assets 5

@behlendorf behlendorf released this May 23, 2019 · 1192 commits to master since this release

New Features

  • Native encryption #5769 - The encryption property enables the creation of encrypted filesystems and volumes. The aes-256-ccm algorithm is used by default. Per-dataset keys are managed with zfs load-key and associated subcommands.

  • Raw encrypted 'zfs send/receive' #5769 - The zfs send -w option allows an encrypted dataset to be sent and received to another pool without decryption. The received dataset is protected by the original user key from the sending side. This allows datasets to be efficiently backed up to an untrusted system without fear of the data being compromised.

  • Device removal #6900 - This feature allows single and mirrored top-level devices to be removed from the storage pool with zpool remove. All data is copied in the background to the remaining top-level devices and the pool capacity is reduced accordingly.

  • Pool checkpoints #7570 - The zpool checkpoint subcommand allows you to preserve the entire state of a pool and optionally revert back to that exact state. It can be thought of as a pool wide snapshot. This is useful when performing complex administrative actions which are otherwise irreversible (e.g. enabling a new feature flag, destroying a dataset, etc).

  • Pool TRIM #8419 - The zpool trim subcommand provides a way to notify the underlying devices which sectors are no longer allocated. This allows an SSD to more efficiently manage itself and helps prevent performance from degrading. Continuous background trimming can be enabled via the new autotrim pool property.

  • Pool initialization #8230 - The zpool initialize subcommand writes a pattern to all the unallocated space. This eliminates the first access performance penalty, which may exist on some virtualized storage (e.g. VMware VMDKs).

  • Project accounting and quota #6290 - This features adds project based usage accounting and quota enforcement to the existing space accounting and quota functionality. Project quotas add an additional dimension to traditional user/group quotas. The zfs project and zfs projectspace subcommands have been added to manage projects, set quota limits and report on usage.

  • Channel programs #6558 - The zpool program subcommand can be used to perform compound ZFS administrative actions via Lua scripts in a sandboxed environment (with time and memory limits).

  • Pyzfs #7230 - The new pyzfs library is intended to provide a stable interface for the programmatic administration of ZFS. This wrapper provides a one-to-one mapping for the libzfs_core API functions, but the signatures and types are more natural to Python.

  • Python 3 compatibility #8096 - The arcstat, arcsummary, and dbufstat utilities have been updated to be compatible with Python 3.

  • Direct IO #7823 - Adds support for Linux's direct IO interface.

Performance

  • Sequential scrub and resilver #6256 - When scrubbing or resilvering a pool the process has been split into two phases. The first phase scans the pool metadata in order to determine where the data blocks are stored on disk. This allows the second phase to issue scrub I/O as sequentially as possible, greatly improving performance.

  • Allocation classes #5182 - Allows a pool to include a small number of high-performance SSD devices that are dedicated to storing specific types of frequently accessed blocks (e.g. metadata, DDT data, or small file blocks). A pool can opt-in to this feature by adding a special or dedup top-level device.

  • Administrative commands #7668 - Improved performance due to targeted caching of the metadata required for administrative commands like zfs list and zfs get.

  • Parallel allocation #7682 - The allocation process has been parallelized by creating multiple "allocators" per-metaslab group. This results in improved allocation performance on high-end systems.

  • Deferred resilvers #7732 - This feature allows new resilvers to be postponed if an existing one is already in progress. By waiting for the running resilver to complete redundancy is restored as quickly as possible.

  • ZFS Intent Log (ZIL) #6566 - New log blocks are created and issued while there are still outstanding blocks being serviced by the storage, effectively reducing the overall latency observed by the application.

  • Volumes #8615 - When a pool contains a large number of volumes they are more promptly registered with the system and made available for use after a zpool import.

  • QAT #7295 #7282 #6767 - Support for accelerated SHA256 checksums, AES-GCM encryption, and the new QAT Intel(R) C62x Chipset / Atom(R) C3000 Processor Product Family SoC.

Changes in Behavior

  • Relaxed (ref)reservation constraints on volumes, they may now be set larger than the volume size.

  • The arcstat.py, arc_summary.py, and dbufstat.py commands have been renamed arcstat, arc_summary, and dbufstat respectively.

  • The SPL source is now included in the ZFS repository removing the need for separate packages.

  • The dedupditto pool property and zfs send -D option have been deprecated and will be removed in a future release.

Additional Information

  • Supported kernels - Compatible with 2.6.32 - 5.1* Linux kernels.
    * SIMD acceleration is currently not supported for Linux 5.0 and newer kernels.

  • Change log - Complete v0.7.0 - v0.8.0 change log

  • Module options - The default values for the module options were selected to yield good performance for the majority of workloads and configurations. They should not need to be tuned for most systems but are available for performance analysis and tuning. See the zfs-module-parameters(5) man page for the complete list of the options and what they control.

Updated module options
  • Added:
    • dbuf_metadata_cache_max_bytes* - Maximum size in bytes of the dbuf metadata cache
    • dbuf_cache_shift - Set the size of the dbuf cache to a log2 fraction of arc size
    • icp_aes_impl - Select aes implementation
    • icp_gcm_impl - Select gcm implementation
    • metaslab_force_ganging - Blocks larger than this size are forced to be gang blocks
    • spa_load_print_vdev_tree - Print vdev tree to zfs_dbgmsg during pool import
    • spl_hostid - The system hostid
    • spl_hostid_path - The system hostid file (/etc/hostid)
    • spl_panic_halt - Cause kernel panic on assertion failures
    • vdev_removal_max_span - Largest span of free chunks a remap segment can span
    • vdev_validate_skip - Bypass vdev_validate()
    • zio_slow_io_ms - Max I/O completion time (milliseconds) before marking it as slow
    • zio_deadman_log_all - Log all slow ZIOs, not just those with vdevs
    • zfs_key_max_salt_uses - Max number of times a salt value can be used for generating encryption keys before it is rotated
    • zfs_commit_timeout_pct - ZIL block open timeout percentage
    • zil_nocacheflush - Disable ZIL cache flushes
    • zfs_unlink_suspend_progress - Set to prevent async unlinks (debug - leaks space into the unlinked set)
    • zfs_lua_max_instrlimit - Max instruction limit that can be specified for a channel program
    • zfs_lua_max_memlimit - Max memory limit that can be specified for a channel program
    • zfs_trim_extent_bytes_max - Max size of TRIM commands, larger will be split
    • zfs_trim_extent_bytes_min - Min size of TRIM commands, smaller will be skipped
    • zfs_trim_metaslab_skip - Skip metaslabs which have never been initialized
    • zfs_trim_txg_batch - Min number of txgs to aggregate frees before issuing TRIM
    • zfs_trim_queue_limit - Max queued TRIMs outstanding per leaf vdev
    • zfs_removal_ignore_errors - Ignore hard IO errors when removing device
    • zfs_remove_max_segment - Largest contiguous segment to allocate when removing device
    • zfs_removal_suspend_progress - Pause device removal after this many bytes are copied (debug use only - causes removal to hang)
    • zfs_vdev_aggregation_limit_non_rotating - Max vdev I/O aggregation size for non-rotating media
    • zfs_vdev_aggregate_trim - Allow TRIM I/O to be aggregated
    • zfs_vdev_initializing_max_active - Max active initializing I/Os per vdev
    • zfs_vdev_initializing_min_active - Min active initializing I/Os per vdev
    • zfs_vdev_removal_max_active - Max active removal I/Os per vdev
    • zfs_vdev_removal_min_active - Min active removal I/Os per vdev
    • zfs_vdev_trim_max_active - Max active trim/discard I/Os per vdev
    • zfs_vdev_trim_min_active - Min active trim/discard I/Os per vdev
    • zfs_initialize_value - Value written during zpool initialize
    • zfs_condense_indirect_vdevs_enable - Whether to attempt condensing indirect vdev mappings
    • zfs_condense_min_mapping_bytes - Minimum size of vdev mapping to condense
    • zfs_condense_max_obsolete_bytes - Minimum size obsolete spacemap to attempt condensing
    • zfs_condense_indirect_commit_entry_delay_ms - Delay while condensing vdev mapping
    • zfs_reconstruct_indirect_combinations_max - Maximum number of combinations when reconstructing split segments
    • zfs_vdev_default_ms_count - Target number of metaslabs per top-level vdev
    • zfs_vdev_min_ms_count - Minimum number of metaslabs per top-level vdev
    • zfs_vdev_ms_count_limit - Practical upper limit of total metaslabs per top-level vdev
    • zfs_slow_io_events_per_second - Rate limit slow IO (delay) events to this many per second
    • zfs_checksum_events_per_second - Rate limit checksum events to this many checksum errors per second
    • zfs_nocacheflush - Disable cache flushes
    • zfs_deadman_ziotime_ms - IO expiration time in milliseconds
    • zfs_deadman_failmode - Failmode for deadman timer
    • zfs_ddt_data_is_special - Place DDT data into the special class
    • zfs_user_indirect_is_special - Place user data indirect blocks into the special class
    • zfs_special_class_metadata_reserve_pct - Small file blocks in special vdevs depends on this much free space available
    • zfs_spa_discard_memory_limit - Maximum memory for prefetching checkpoint space map per top-level vdev while discarding checkpoint
    • zfs_max_missing_tvds - Allow importing pool with up to this number of missing top-level vdevs (in read-only mode)
    • zfs_scan_vdev_limit - Max bytes in flight per leaf vdev for scrubs and resilvers
    • zfs_scrub_min_time_ms - Min millisecs to scrub per txg
    • zfs_obsolete_min_time_ms - Min millisecs to obsolete per txg
    • zfs_scan_suspend_progres - Set to prevent scans from progressing
    • zfs_async_block_max_blocks - Max number of blocks freed in one txg
    • zfs_scan_mem_lim_fact - Fraction of RAM for scan hard limit
    • zfs_scan_issue_strategy - IO issuing strategy during scrubbing. 0 = default, 1 = LBA, 2 = size
    • zfs_scan_legacy - Scrub using legacy non-sequential method
    • zfs_scan_checkpoint_intval - can progress on-disk checkpointing interval
    • zfs_scan_max_ext_gap - Max gap in bytes between sequential scrub / resilver I/Os
    • zfs_scan_mem_lim_soft_fact - Fraction of hard limit used as soft limit
    • zfs_scan_strict_mem_lim - Tunable to attempt to reduce lock contention
    • zfs_scan_fill_weight - Tunable to adjust bias towards more filled segments during scans
    • zfs_resilver_disable_defer - Process all resilvers immediately
    • zfs_zil_clean_taskq_nthr_pct - Max percent of CPUs that are used per dp_sync_taskq
    • zfs_zil_clean_taskq_minalloc - Number of taskq entries that are pre-populated
    • zfs_zil_clean_taskq_maxalloc - Max number of taskq entries that are cached
    • zfs_disable_ivset_guid_check - Set to allow raw receives without IVset guids
    • zfs_override_estimate_recordsize - Record size calculation override for zfs send estimates
    • zfs_send_unmodified_spill_blocks - Send unmodified spill blocks
    • zfs_arc_min_prefetch_ms - Min life of prefetch block in ms
    • zfs_arc_min_prescient_prefetch_ms - Min life of prescient prefetched block in ms
    • zfs_abd_scatter_min_size - Minimum size of scatter allocations
  • Removed:
    • dbuf_cache_max_shift - Cap the size of the dbuf cache to a log2 fraction of arc size
    • metaslabs_per_vdev - Divide added vdev into approximately (but no more than) this number of metaslabs
    • zio_delay_max - Max zio millisec delay before posting event
    • zfs_nocacheflush - Disable cache flushes
    • zfs_delays_per_second - Rate limit delay events to this many IO delays per second
    • zfs_checksums_per_second - Rate limit checksum events to this many checksum errors per second
    • zfs_top_maxinflight - Max I/Os per top-level
    • zfs_resilver_delay - Number of ticks to delay resilver
    • zfs_scrub_delay - Number of ticks to delay scrub
    • zfs_scan_idle - Idle window in clock ticks
    • zfs_scan_min_time_ms - Min millisecs to scrub per txg
    • zfs_free_max_blocks - Max number of blocks freed in one txg
    • zfs_dirty_data_sync - Sync txg when this much dirty data
    • zfs_mdcomp_disable - Disable meta data compression
    • zfs_arc_min_prefetch_lifespan - Min life of prefetch block
Assets 5
You can’t perform that action at this time.