Supported Platforms
- Linux: compatible with 4.18 - 6.15 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Changes
- Tag zfs-2.3.3
- Linux 6.15 compat: META #17393
- Fix mixed-use-of-spaces-and-tabs rpmlint warning #17461
- ioctl: remove FICLONE/FICLONERANGE/FIDEDUPERANGE compat #17308
- Relax zfs_vnops_read_chunk_size limitations #17415
- dmu_traverse: remove 'ignore_hole_birth' tunable alias #17376
- ARC: parallel eviction #16486
- During pool export flush the ARC asynchronously #16215
- CI: Automate some GitHub PR status labels manipulations #16721
- FreeBSD: zfs_putpages: don't undirty pages until after write completes #17445
- zfs_log_write: only put the callback on the last itx #17445
- zpl_sync_fs: work around kernels that ignore sync_fs errors #17420
- zfs_sync: return error when pool suspends #17420
- zfs_sync: remove support for impossible scenarios #17420
- zts: test syncfs() behaviour when pool suspends #17420
- Improve block cloning transactions accounting #17431
- Reduce zfs_dmu_offset_next_sync penalty #17434
- Make TX abort after assign safer #17438
- Allow zero compression if dedup is enabled #17435
- ZTS: Enable io_uring on CentOS Stream 9 and 10 also #17447
- Linux build: silence objtool warnings #17410
- CI: Retire Fedora 40 builder #17408
- ZTS: Enable io_uring support on el9/el10 #17397
- ZTS: Add AlmaLinux 10 #17397
- abd_os: move headers from libzpool to libspl #16940 #17390 #17394
- Set spa_final_txg in spa_unload() #17395
- zpool: clarify ZPOOL_STATUS_REMOVED_DEV status message #17400
- vdev: skip faulting disks pending removal #17400
- CI: Retire Ubuntu 20.04 builder #17403
- linux/zvol_os: don't try to set disk ops if alloc fails #17396
- Linux build: always use objtool
- Reviewed-by: Tony Hutter hutter2@llnl.gov #17401 #17364
- tunables: fix spelling #17377
- tunables: remove __check_old_set_param workaround #17377
- tunables: remove unused param get/set aliases #17377
- tunables: use Linux ullong param ops for u64 #17377
- tunables: remove support for s64 tunables #17377
- tunables: remove direct use of module_param_cb #17377
- tunables: remove FreeBSD compat macros for Linux module params #17377
- tunables: ensure tunable and variable have same define gate #17377
- tunables: don't assert initialisation in impl getters #17377
- zfs_log: make zfs_immediate_write_sz uint #17377
- Only interrupt active disk I/Os in failmode=continue #17372
- zcp: get_prop: fix encryptionroot and encryption #17280
- ZVOL: Comment platform-specific empty functions bodies on FreeBSD side #17383
- Expose dataset encryption status via fast stat path #17368
- ZIL: Improve write log size accounting #17373
- ZTS: testing for leaked key mappings in encrypted non-raw send #17366
- Refactor man page and CLI help output per mandoc #17357
- Reformat cli help and man page to be in sync #16004 #17357
- Fix off-by-one bug in range tree code #17363
- Fix null dereference in spa_vdev_remove_cancel_sync() #17361
- Update 69-vdev.rules.in #17345
- lzc_ioctl_fd: add ZFS_IOC_TRACE envvar to enable ioctl tracing #17344
- lzc: move lzc_ioctl_fd() into lzc proper #17344
- libzfs: ensure all ioctl calls go through lzc_ioctl_fd() #17344
- Add Quality Assurance to pull request template #17354
- dmu_objset_hold_flags() should call dsl_dataset_rele_flags() on error #17353
- arcstat: prevent ZeroDivisionError when L2ARC becomes empty #17348
- Linux 6.2/6.15: del_timer_sync() renamed to timer_delete_sync() #17229
- Linux 6.15: mkdir now returns struct dentry * #17229
- icp: Use explicit_memset() exclusively in gcm_clear_ctx() #17343
- Fix 2 bugs in non-raw send with encryption #12014 #17340
- Cause zpool scan resume commands to get logged in history #17301
- ARC: Notify dbuf cache about target size reduction #17314
- Linux: Stop using NR_FILE_PAGES for ARC scaling #17334
- runners: Add option to install custom kernel on Fedora #17156
- vdev_id: symlinks creation for multipath disk partitions (#17331)
- AUTHORS/mailmap: update with new contributors
- update_authors: output possible mailmap additions
- For the moment, this needs to be done by a human, because update_authors
- update_authors: consider Signed-off-by trailers for committer idents
- test-runner: rework output dir construction #17167
- spa: clear checkpoint information during retry #17319
- linux/uio: remove "skip" offset for UIO_ITER #17298
- More aggressively assert that db_mtx protects db.db_data #17209
- FreeBSD: Use new SYSCTL_SIZEOF() #17309
- ARC: Avoid overflows in arc_evict_adj() (#17255)
- txg: generalise txg_wait_synced_sig() to txg_wait_synced_flags() (#17284)
- ZTS: Restore some delays in online_offline tests
- Fix race between resilver wait and offline/detach
- tests: fix
S_IFMT
undeclared atstatx.c
#17293 #17294 - ZTS: Stop zpool_status tests from spamming stdout (#17292)
- Fix double spares for failed vdev
- ZTS: Fix replacement/resilver_restart_001 on FreeBSD #16822 #17279
- Sort the blocking snapshots list #12751 (#17264)
- Double quote variables to prevent globbing and word splitting #17235
- cred: properly pass and test creds on other threads (#17273)
- ZTS: Optimize KSM on Linux and remove it for FreeBSD #17247
- zfs-rollback.8: fix typo in example number #17282
- ZTS: Use Ubuntu default url for cloud-image #17278
- ZTS: Make zvol_stress write some more #17270
- ZTS: Reduce extra caching in pool_checkpoint (#17268)
- Support using llvm-libunwind #17230
- Export correct symbols for Lustre Direct I/O #17256
- Add more descriptive destroy error message
- ZTS: Fix 256MB file leak in zed_cksum_reported
- ZTS: Update FreeBSD version numbers
- ZTS: Remove fixed sleeps from slog_006_pos
- ZTS: Polish online_offline tests
- ZTS: Remove ashift setting from dedup_quota test (#17250)
- Cleanup VERIFY() macros (#17163)
- vdev_to_nvlist_iter: ignore draid parameters when matching names (#17228)
- Improve L2 caching control for prefetched indirects #17204
- ZTS: Remove TXG_TIMEOUT from dedup_quota test (#17150)
- Prefer embedded blocks to dedup #17113
- ZAP: Reduce leaf array and free chunks fragmentation #16766