| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16307 1d43387dd zdb: Add -O option for -r to specify object-id
#17965 a62c62120 ARC: Pre-convert zfs_arc_min_prefetch_ms
#17970 d393166c5 ARC: Increase parallel eviction batching
#17981 20f09eae4 ZIO: ZIO_STAGE_DDT_WRITE is a blocking stage
#17983 ff47dd35e Fix ddtprune causing space leak
#18015 86b064469 FreeBSD: Fix a potential null dereference
in zfs_freebsd_fsync() (already merged)
#18020 ff47dd35e Ensure 64-bit `off_t` is used in user space
instead of `loff_t`
#18028 09492e0f2 Reduce dataset buffers re-dirtying
#18033 f72fd378c Defer async destroys on pool import
#18043 3d76ba273 Improve async destroy processing timing
#18044 46d6f1fe5 DDT: Move logs searches out of the lock
#18047 ff5414406 DDT: Switch to using ZAP _by_dnode() interfaces
#18048 3b1ff816b DDT: Add/use zap_lookup_length_uint64_by_dnode()
#18055 22e89aca8 DDT: Fix compressed entry buffer size
#18059 0550abd4b RAIDZ: Remove some excessive logging
#18060 a83bb15fc Reduce minimal scrub/resilver times
#18061 962e68865 Use reduced precision for scan times
#18063 051a8c749 Bypass snprintf() in quota checks if no quotas set
#18064 7ff329ac2 Fix rangelock test for growing block size
Obtained from: OpenZFS
OpenZFS commit: 962e68865e4a569a8a51a07a45dcae7c33cdca78
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FreeBSD: Fix a potential null dereference in zfs_freebsd_fsync()
In general it's possible for a vnode to not have an associated VM
object. This happens in particular with named pipes, which have
some distinct VOPs, defined in zfs_fifoops. Thus, this chunk of
zfs_freebsd_fsync() needs to check for the FIFO case, like other
vm_object_mightbedirty() callers do.
(Note that vn_flush_cached_data() calls are predicated on
zn_has_cached_data() returning true, and it checks for a NULL v_object
pointer already.)
Fixes: ef4058fcdc01838117dd93a654228bac7487a37c
Reported-by: Collin Funk <collin.funk1@gmail.com>
Reviewed-by: Sean Eric Fagan <sef@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Mark Johnston <markj@FreeBSD.org>
Closes #18015
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17932 1f3444f2b zpool: fix special vdev -v -o conflict
#17934 -multiple Remove libuutil
#17941 88d012a1d Fix snapshot automount expiry cancellation deadlock
#17942 36e4f1888 Fix taskq NULL pointer dereference on timer race
#17946 39303feba chksum: run 256K benchmark on demand, preserve
chksum_stat_data
#17948 -multiple Remove libtpool
#17957 e37937f42 ztest: fix broken random call
#17960 928eccc5b DDT: Reduce global DDT lock scope during writes
#17961 48f33c1ef DDT: Make children writes inherit allocator
#17975 7f7d4934c FreeBSD: Fix uninitialized variable error
#17980 a5b665df3 DDT: Switch to using wmsums for lookup stats
#18004 ffaea0831 FreeBSD: Remove HAVE_INLINE_FLSL use
Obtained from: OpenZFS
OpenZFS commit: 89f729dcca87425aadfa03d1764e96f285eb658d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17477 02fdd26e5 Add knob to disable slow io notifications
#17792 d0294aa75 Update dnode_next_offset_level to accept blkid instead
of offset
#17824 8c225ff1b Fix gang write late_arrival bug
#17861 -multiple Lift userspace definitions out of zfs_context.h
#17872 dcada084b Pass flags to more DMU write/hold functions
#17875 ec268cdf9 Fix caching of DDT log and BRT
#17875 ea125eeb5 BRT: Round bv_entcount up to BRT_BLOCKSIZE
#17877 6cfc3dba9 Cleanup ZIO_FLAG_IO_RETRY vs TRYHARD usage
#17885 e63d026b9 cmd/zpool cstyle issues
#17890 b4f073b5a Add BRT support to zpool prefetch command
#17903 baefe098e ZIO: Set minimum number of free issue threads to 32
#17906 6e12f0bd7 spa_misc: add an API for spa_namespace_lock
#17908 e26b9fc87 FreeBSD: Add support for _PC_CASE_INSENSITIVE
#17911 -multiple Update library ABI versions for v2.4.0
#17915 8aaed7dc4 BRT: Fix ranges to blocks conversion math
#17916 cc5cae547 BRT: Increase block size from 4KB to 8KB
#17921 72b2a9571 ZAP: Remove dmu_object_info_from_dnode() call
Obtained from: OpenZFS
OpenZFS commit: e63d026b91b822dd9b363ab9a1e39d9a66493601
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17836 adacf020c Fix return value for setting zvol threading
#17839 44704616b zpool: fix conflict with -v and -o options
#17851 3a55e76b8 FreeBSD: zfs_getpages: Don't zero freshly allocated pages
#17863 0455150f1 FreeBSD zio_crypt.c: initialize uio variables before
access
Obtained from: OpenZFS
OpenZFS commit: 0455150f1160dd7089ab31fefcfc58bfa548ab81
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initially, `zfs_getpages()` is provided with an array of busy pages by
the vnode pager. It then tries to acquire the range lock, but if there
is a concurrent `zfs_write()` running and fails to acquire that range
lock, it "unbusies" the pages to avoid a deadlock with `zfs_write()`.
After that, it grabs the pages again and retries to acquire the range
lock, and so on.
Once it got the range lock, it filters out valid pages, then copy DMU
data to the remaining invalid pages.
The problem is that freshly allocated zero'd pages it grabbed itself are
marked as valid. Therefore they are skipped by the second part of the
function and DMU data is never copied to these pages. This causes mapped
pages to contain zeros instead of the expected file content.
This was discovered while working on RabbitMQ on FreeBSD. I could
reproduce the problem easily with the following commands:
git clone https://github.com/rabbitmq/rabbitmq-server.git
cd rabbitmq-server/deps/rabbit
gmake distclean-ct RABBITMQ_METADATA_STORE=mnesia \
ct-amqp_client t=cluster_size_3:leader_transfer_stream_send
The testsuite fails because there is a sendfile(2) that can happen
concurrently to a write(2) on the same file. This leads to sendfile(2)
or read(2) (after the sendfile) sending/returning data with zeros, which
causes a function to crash.
The patch consists of not setting the `VM_ALLOC_ZERO` flag when
`zfs_getpages()` grabs pages again. Then, the last page is zero'd if it
is invalid, in case it would be partially filled with the end of the
file content. Other pages are either valid (and will be skipped) or they
will be entirely overwritten by the file content.
This patch was submitted to OpenZFS as openzfs/zfs#17851 which was
approved.
Reviewed by: avg, mav
Obtained from: OpenZFS
OpenZFS commit: 8a3533a366e6df2ea770ad7d80b7b68a94a81023
MFC after: 3 days
Differential revision: https://reviews.freebsd.org/D53219
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17750 6e5b836e9 FreeBSD: Correct _PC_MIN_HOLE_SIZE
#17803 1861a329f zvol: verify IO type is supported
#17826 51de2d76f Explicit set ashift for non-leaf vdevs
#17830 f4276479c Suppress some ashift warnings
#17843 6ae99d269 mmap_seek: print error code and text on failure
Obtained from: OpenZFS
OpenZFS commit: 6ae99d26924decb5f618b596ec7663e6a26d2e5f
|
| |
|
|
|
|
|
|
| |
Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D52045
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The introduction of OpenZFS moved some sysctls, and legacy compat shims
were added. For example:
Old (legacy) name: vfs.zfs.min_auto_ashift
New name: vfs.zfs.vdev.min_auto_ashift
Upstream OpenZFS removed these, but we've temporarily restored them in
FreeBSD.
Note that l2arc sysctls use generic sysctl functions (e.g. SYSCTL_UQUAD)
and thus cannot trivially have warnings added, so they are not handled.
PR: 266374
Reviewed by: jlduran
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D53033
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
As of commit 87a7b35f04b6 ("bsdinstall: fix vfs.zfs.vdev.min_auto_ashift
oid") the installer uses the current vfs.zfs.vdev.min_auto_ashift sysctl
name, but there are many systems with configurations referring to the
legacy vfs.zfs.min_auto_ashift sysctl. For now, restore the aliases.
This reverts commit ced72fdd69f27b54cf592351a36660cd9fd7dbd3.
PR: 266374
Reviewed by: mm
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52660
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16025 26b0f561b dnode_next_offset: backtrack if lower level does not match
#17758 c722bf881 Add interface to interface spa_get_worst_case_min_alloc()
function
#17765 8d4c3ee9e zvol: Fix blk-mq sync
#17787 8869caae5 zinject: Introduce ready delay fault injection
#17780 b2196fbed Fix 'zpool add' safety check corner cases
#17783 5c38029f4 zdb: add ZFS_KEYFORMAT_RAW support for -K option
#17786 f0a95e897 zpool iostat: refresh pool list every interval
#17807 -multiple zpool iostat: fix regressions in "all pools" mode
after #17786
#17793 -multiple ddt prune: Add SCL_ZIO deadlock workaround
#17799 ac2d8c80b Make mount/share errors non-fatal for zfs create/clone
Obtained from: OpenZFS
OpenZFS commit: 5605a6d79b3582296208ac391f93a5faf729fa92
|
| |
|
|
|
|
|
| |
To avoid a compilation warning. The routine turned out to be rather
stubborn when it comes to trying to ifdef it out.
Sponsored by: Rubicon Communications, LLC ("Netgate")
|
| |
|
|
|
|
|
| |
The function is unused, already disappeared upstream and results in
compilation warnings.
Sponsored by: Rubicon Communications, LLC ("Netgate")
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17705 545d66204 Fix a printf format specifier on FreeBSD/i386
#17708 3387d3409 Fix atomic-alignment warnings in libspl on FreeBSD/i386
#17719 f319ff357 vdev_disk_close: take disk write lock before destroying it
#17732 1d2d81298 Refactor `zhack label repair` and fix `-c` regression on
nonzero TXG
#17764 ea37c30fc zdb: Fix asize overflow in verify_livelist_allocs()
Obtained from: OpenZFS
OpenZFS commit: b2196fbedf5dbfb8593288f5f9ba712e31429a84
|
| |
|
|
|
|
|
|
|
|
| |
EINVAL"
This reverts commit cead6157cc1b748df29b32072f492d4f6afae65a.
Same as 9a3edc8d5dbcb896179cfa7867f961184e146a09
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
same as UFS"
This reverts commit 9a3edc8d5dbcb896179cfa7867f961184e146a09.
Apparently returning EINVAL is more aggressive than UFS does it, and
this causes compatibility issues with apps that actually trigger the
behavior.
PR: 289485, 289678
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
|
| |
|
|
|
| |
raidz_outlier_check_interval_ms has type hrtime_t, which is a long long,
which is 64 bits wide on all supported platforms.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17227 d64711c20 Detect a slow raidz child during reads
#17543 -multiple zfs allow send:raw
#17717 bc0b5318a Prevent scrubbing a read-only pool
#17722 cb5f9aa58 FreeBSD: Satisfy ASSERT_VOP_IN_SEQC()
#17729 3f4312a0a Fix two infinite loops if dmu_prefetch_max set to zero
#17730 37cd30f71 Fix ddle memleak in ddt_log_load
#17733 bc8bcfc71 Fix type in dbrrd_closest()
#17735 9b772f328 Fix time database update calculations
Obtained from: OpenZFS
OpenZFS commit: 3f4312a0a428624e596bb35ae4806ea0d4d69472
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#15869 ee7c36264 Add description of default sorting behavior to zfs_list.8
#17375 ced72fdd6 tunables: remove legacy FreeBSD aliases
#17600 1da2c30be Update pam_zfs_key.c default path for FreeBSD
#17632 b6bd3228b Synchronize the update of feature refcount
#17645 59f8f5dfe zfs_vnops_os.c: Add support for the _PC_CLONE_BLKSIZE name
#17665 0d54ae288 zdb: Fix format strings on 32-bit systems
#17673 976f76534 Update compatibility.d files
#17699 e3c3e86c0 Fix wrong dedup_table_size for legacy dedup
#17704 e29bfa5bd Fix warnings about sha2_is_supported on FreeBSD/i386
#17706 a2424312c Fix the build on 32-bit FreeBSD with GCC
Obtained from: OpenZFS
OpenZFS commit: 7939bad5e79225288a2580e8ea217f5c6f616db2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenZFS 2.4.0 rc1
Notable upstream pull request merges:
#17643 94413bc75 zdb: Filter log spacemaps by vdev
#17655 28ff57505 FreeBSD: satisfy VFS requirements for readdir()
#17658 -multiple dnode: fix how we track and check dirtyness
As OpenZFS 2.4 got branched, this is the last merge to main
until stable/15 is branched. stable/15 will receive updates
from the vendor/openzfs/zfs-2.4-release branch.
Obtained from: OpenZFS
OpenZFS commit: 00dfa094ac35e240bed33f8bcfea68d805eab6ae
OpenZFS tag: zfs-2.4.0-rc1
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17058 -multiple Port AVX2 implementation of aes-gcm from BoringSSL
#17602 077269bfe Fix Assert in dbuf_undirty, which triggers during
usage zap shrink
#17613 d15143207 ZIL: Make allocations more flexible
#17618 5061f959d Retire zfs_autoimport_disable kmod option
#17166 d3c1d27af zdb: better handling for corrupt block pointers
#17616 1ccae433e Allow vmem_alloc backed multilists
#17619 e0e60d319 Better pack struct zio_prop
#17620 152e34822 Silence zstd large allocation warning
#17622 -multiple ZIL: restore some things lost in "ZIL-crash" review
#17625 -multiple zvol: cleanup & fixup zvol destruction sequence and
locking
#17631 885d929cf Fix missed assertion update in physical rewrite patch
#17642 a9410ccbd Make zpool_find_config() report errors
#17647 30a915efe zfs-send.8: mention combination of -c/-e flags and
zstd_compress feature
#17649 2c877e845 FreeBSD: Set st_rdev to NODEV, not 0, when not a device
(already backported)
Obtained from: OpenZFS
OpenZFS commit: a9410ccbd9f0375a7eeb6bc35eb55efe9c21493e
|
| |
|
|
|
|
|
| |
Reviewed by: allanjude, markj, rmacklem
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D51930
|
| |
|
|
|
|
|
|
| |
Reported by: rmacklem
Reviewed by: allanjude, markj, rmacklem
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D51930
|
| |
|
|
|
|
|
|
|
| |
same as UFS.
Reviewed by: allanjude, markj, rmacklem
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D51930
|
| |
|
|
|
|
|
|
|
| |
PR: 288889
Reported by: bakul
Reviewed by: allanjude, markj, rmacklem
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D51930
|
| |
|
|
|
| |
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D51954
|
| |
|
|
|
|
|
|
| |
Physical rewrite patch changed the meaning of BP_GET_BIRTH(), but
I missed update one of its occurences, ending up asserting equal
logical birth times instead of equal physical birth times.
PR: 288722
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17398 -multiple ZIL: "crash" the ZIL if the pool suspends during fallback
#17585 0c376d0f5 Document the new '-a' zpool option
#17590 03592417c SIMD: Don't require definition of `HAVE_XSAVE`
#17591 -multiple Prefer VERIFY0 over comparision with 0 or NULL
#17596 -multiple zvol: misc cleanups
#17605 2fd145b57 zvol: cleanup error handling and passthrough
Obtained from: OpenZFS
OpenZFS commit: 1d0b94c4e73d83299528c44fb4fa3b29eb6009a3
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16853 894edd084 Add TXG timestamp database
#17004 -multiple Implement dynamic gang header sizes
#17405 dea0fc969 ZVOL: Return early, if volmode is ZFS_VOLMODE_NONE
on FreeBSD side
#17455 cf146460c Default to zfs_bclone_wait_dirty=1
#17481 523d9d600 Validate mountpoint on path-based unmount using statx
#17482 92da9e0e9 ZVOL: Implement zvol_alloc() function on FreeBSD side
#17489 dee62e074 spa: ZIO_TASKQ_ISSUE: Use symbolic priority
#17496 bf846dcb7 Release topology restrictions on special/dedup
#17497 4e92aee23 Relax special_small_blocks restrictions
#17503 ea38787f2 Revert "Fix incorrect expected error in ztest"
#17505 be1e991a1 Allow and prefer special vdevs as ZIL
#17506 ee0cb4cb8 ztest: Fix false positive of ENOSPC handling
#17507 92d3b4ee2 zio: rename `io_reexecute` as `io_post`;
use it for the direct IO checksum error flag
#17508 6af8db61b metaslab: don't pass whole zio to throttle reserve APIs
#17518 4c2a7f85d FreeBSD: Add support for _PC_HAS_HIDDENSYSTEM
#17521 d7ab07dfb ZIL: Force writing of open LWB on suspend
#17524 b6e8db509 zpool/zfs: Add '-a|--all' option to scrub, trim,
initialize
#17531 c1e51c55f Correct weight recalculation of space-based metaslabs
#17533 d323fbf49 FreeBSD: zfs_putpages: don't undirty pages until
after write completes
#17536 b21e04e8d Fix zdb pool/ with -k
#17537 -multiple Userspace tunables
#17540 2957eabbe Add support for FreeBSD's Solaris style extended
attribute interface
#17547 4bd7a2eaa zdb: fix checksum calculation for decompressed blocks
#17551 -multiple cleanup: remove var init/update
#17561 0f8a1105e Skip dbuf_evict_one() from dbuf_evict_notify()
for reclaim thread
#17563 10a78e264 Faster checksum benchmark on system boot
#17564 00ce064d8 spa: update blkptr diagram to include vdev padding
on encrypted blocks
#17565 -multiple Physical rewrite
#17566 fc885f308 Don't use wrong weight when passivating group
#17572 f70c85086 BRT: Fix ZAP entry endianness
#17575 0b6fd024a ZVOL: Unify zvol minors operations and improve error
handling
#17581 cb5e7e097 range_tree: Provide more debug details upon unexpected
add/remove
#17587 -multiple Fix two issues with dynamic gang headers
Obtained from: OpenZFS
OpenZFS commit: 8302b6e32bb153a6f402b106484d5736f082abcc
|
| |
|
|
|
|
|
|
|
|
|
| |
This causes async putpages to leave the pages sbusied for a long time,
which hurts concurrency. Revert for now until we have a better
approach.
This reverts commit 238eab7dc16932edbe9bcc990e8e5376bfe5b2ba.
Reported by: Ihor Antonov <ngor@hugpoint.tech>
Discussed with: Rob Norris <rob.norris@klarasystems.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17463 48ce292ea Clarify and restrict dmu_tx_assign() errors
#17484 d461a67d0 Ensure that gang_copies is always at least as large
as copies
#17486 0a2163d19 FreeBSD: Ensure that z_pflags is initialized for
new znodes
#17488 ea076d692 vdev_raidz_asize_to_psize: return psize, not asize
#17490 69ee01aa4 Fix bug caused by rounding in vdev_raidz_asize_to_psize
Obtained from: OpenZFS
OpenZFS commit: 69ee01aa4b106dd57016b0d756201ecf7c211d46
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17385 e1677d9ee ZVOL: Make zvol_prefetch_bytes module parameter platform-independent
#17386 e0edfcbd4 ZVOL: Make zvol_volmode module parameter platform-independent
#17391 108562344 Improve allocation fallback handling
#17409 68817d28c Include class name into struct metaslab_class
#17413 af7d60959 zpl: handle suspend from two remaining calls to `txg_wait_synced()`
#17415 b7f919d22 Relax zfs_vnops_read_chunk_size limitations
#17423 5e5253be8 FreeBSD: Wire projects support
#17426 -multiple Channel programs: add zfs.sync.clone()
#17431 e0ef4d276 Improve block cloning transactions accounting
#17432 46b82de61 scrub: generate scrub_finish event
#17435 bcd043023 Allow zero compression if dedup is enabled
#17438 ba227e2cc Make TX abort after assign safer
#17441 4ae931aa9 Polish db_rwlock scope
#17434 66ec7fb26 Reduce zfs_dmu_offset_next_sync penalty
#17445 238eab7dc FreeBSD: zfs_putpages: don't undirty pages until after write completes
#17458 bd27b7540 ZIL: Relax parallel write ZIOs processing
#17469 717213d43 Fix other nonrot bugs
Obtained from: OpenZFS
OpenZFS commit: 8170eb6ebcf2e7b1c735da80c331d7a57f1de987
|
| |
|
|
|
|
|
|
|
|
| |
This allows to change the meaning of priority differences in FreeBSD
without requiring code changes in ZFS.
MFC after: 1 month
Event: Kitchener-Waterloo Hackathon 202506
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45390
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Switch to using sys/stdarg.h for va_list type and va_* builtins.
Make an attempt to insert the include in a sensible place. Where
style(9) was followed this is easy, where it was ignored, aim for the
first block of sys/*.h headers and don't get too fussy or try to fix
other style bugs.
Reviewed by: imp
Exp-run by: antoine (PR 286274)
Pull Request: https://github.com/freebsd/freebsd-src/pull/1595
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17381 44e326689 events: include zio type in IO error reports
#17395 008c9666e Set spa_final_txg in spa_unload()
#17394 1bd225ed8 abd_os: move headers from libzpool to libspl
#17399 5764e218b vdev_disk: remove classic IO submission
#17400 b3b3cd1e4 vdev: skip faulting disks pending removal
#17406 a38376b37 Rename zvol kernel module parameters sysctls on FreeBSD side
#17407 2d33c8edb Make rewrite use Uncached I/O
Obtained from: OpenZFS
OpenZFS commit: e8e602d987b01e7940f698d5fa2b00754609c74b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#14876 b048bfa9c Allow opt-in of zvol blocks in special class
#16486 b6916f995 ARC: parallel eviction
#17169 1a8f5ad3b zvol: Enable zvol threading functionality on FreeBSD
#17209 c17bdc491 More aggressively assert that db_mtx protects db.db_data
#17218 734eba251 Wire O_DIRECT also to Uncached I/O
#17246 49fbdd453 Introduce zfs rewrite subcommand
#17255 b1ccab172 ARC: Avoid overflows in arc_evict_adj()
#17280 848794503 zcp: get_prop: fix encryptionroot and encryption
#17301 086105f4c Cause zpool scan resume commands to get logged in history
#17306 246e5883b zfs_valstr: update zio_flag strings for
ZIO_FLAG_PREALLOCATED
#17309 78628a5c1 FreeBSD: Use new SYSCTL_SIZEOF()
#17314 89a8a9158 ARC: Notify dbuf cache about target size reduction
#17319 8b9c4e643 spa: clear checkpoint information during retry
#17339 d5616ad34 Increase meta-dnode redundancy in "some" mode
#17340 ea74cdedd Fix 2 bugs in non-raw send with encryption
#17342 e55225be3 Add explicit DMU_DIRECTIO checks
#17343 d8a33bc0a icp: Use explicit_memset() exclusively in gcm_clear_ctx()
#17344 -multiple libzfs_core: add ZFS_IOC_TRACE envvar to enable ioctl
tracing
#17348 f0baaa329 arcstat: prevent ZeroDivisionError when L2ARC becomes
empty
#17353 83fa80a55 dmu_objset_hold_flags() should call
dsl_dataset_rele_flags() on error
#17355 -multiple Allow txg_wait_synced_flags() and dmu_tx_assign()
to return when the pool suspends
#17361 5c30b2438 Fix null dereference in spa_vdev_remove_cancel_sync()
#17363 ddf28f27c Fix off-by-one bug in range tree code
#17367 06fa8f3f6 zfs_cmd: reorganise zfs_cmd_t to match original size
#17368 2a91d577b Expose dataset encryption status via fast stat path
#17372 c464f1d01 Only interrupt active disk I/Os in failmode=continue
#17373 9d76950d6 ZIL: Improve write log size accounting
#17377 -multiple tunables: general code cleanup
#17379 fa697b94e FreeBSD: Add posix_fadvise(POSIX_FADV_WILLNEED) support
#17384 3dfa98d01 ZVOL: Make zvol_inhibit_dev module parameter
platform-independent
Obtained from: OpenZFS
OpenZFS commit: 3084336ae4a4e114e41be3177a3f5c779d66e93c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously OCF set CRYPTO_F_DONE prior to invoking the completion
callback, even if the request failed. This isn't particularly useful
and leads to bugs when consumers retry a failed request, since OCF also
asserts that CRYPTO_F_DONE is clear in crypto_dispatch(). (Really, OCF
should retry requests that fail with EAGAIN, but that's a larger
change.)
For now, just stop setting CRYPTO_F_DONE to simplify consumers (and fix
those which fail to clear the flag before retrying a request).
PR: 286321
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D50104
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce two helpers, the more general SYSCTL_SIZEOF() and
a struct-specific one SYSCTL_SIZEOF_STRUCT() which prepends 'struct' in
the description and in the use of sizeof() but uses the raw structure
name as the knob's name. The size of the object/structure is exported
under 'debug.sizeof'.
Existing knobs under 'debug.sizeof' were all converted to use the
helpers.
Add a note before the helpers discouraging the introduction of new
leaves for ad-hoc reasons. List alternative means for developers to
obtain the size of arbitrary kernel structures easily (thanks to markj@
for providing these).
No functional change (intended).
Reviewed by: kib, markj
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50121
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17111 246e5883b Implement allocation size ranges and use for gang leaves
#17123 5f5321eff Handle interaction between gang blocks, copies, and FDT
#17130 -multiple Implement default user/group/project quotas
#17164 301da593a Fix lock reversal on device removal cancel
#17183 367d34b3a Fix dspace underflow bug
#17187 30cc2331f zed: Ensure spare activation after kernel-initiated device
removal
#17191 11ca12dbd simd_powerpc.h: enable FPU on FreeBSD
#17192 5b29e70ae Remove mg_allocators
#17204 a497c5fc8 Improve L2 caching control for prefetched indirects
#17205 b14b3e398 Fix FDT rollback to not overwrite unnecessary fields
#17206 7be9fa259 Fix nonrot property being incorrectly unset
#17208 09fc7bb47 Fix memory leaks in pool properties handling
#17213 78a7c78bd Added fix for zpool get state segfaults with two or more
vdevs
#17228 131df3bbf vdev_to_nvlist_iter: ignore draid parameters when matching
names
#17231 f40ab9e39 Fix double spares for failed vdev
#17264 27f3d9494 Sort the blocking snapshots lis
#17269 f86d9af16 Fix race between resilver wait and offline/detach
#17273 c8fa39b46 cred: properly pass and test creds on other threads
#17284 a7de203c8 txg: generalise txg_wait_synced_sig() to
txg_wait_synced_flags()
Obtained from: OpenZFS
OpenZFS commit: 246e5883bb5b8e09b1a4213f7b1704b5a9ed5568
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17015 201d26294 Add receive:append permission for limited receive
#17020 94a3fabcb Unified allocation throttling
#17038 1b495eeab FDT dedup log sync -- remove incremental
#17073 9250403ba Make ganging redundancy respect redundant_metadata
property
#17077 0433523ca Verify every block pointer is either embedded, hole,
or has a valid DVA
#17101 83fa051ce spl_vfs: fix vrele task runner signature mismatch
#17113 09f4dd06c Prefer embedded blocks to dedup
#17120 0ea44e576 Fix deduplication of overridden blocks
#17124 62a9d372f zed: Print return code on failed zpool_prepare_disk
#17126 3cd9934a4 Some arc_release() cleanup
#17136 d033f2676 Always perform bounds-checking in metaslab_free_concrete
#17142 45e9b54e9 kstat: allow multi-level module names
#17145 676b7ef10 Fix deadlock on I/O errors during device removal
#17180 4abc21b28 Block remap for cloned blocks on device removal
Obtained from: OpenZFS
OpenZFS commit: 4abc21b28c22d93c06e1e51c1f9019b4fa4e0d51
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17042 ece35e0e6 zpool: allow relative vdev paths
#17046 c43df8bbb vdev_file: unify FreeBSD and Linux implementations
#17064 ee8803adc vdev_file: make FLUSH and TRIM asynchronous
#17066 ecc44c45c include: move zio_priority_t into zfs.h
#17071 ab3db6d15 arc: avoid possible deadlock in arc_read
#17079 682c5f6a0 Fix wrong free function in arc_hdr_decrypt
#17080 701093c44 Don't try to get mg of hole vdev in removal
#17081 d7d274471 Better fill empty metaslabs
#17088 a5fb5c55b spa: fix signature mismatch for spa_boot_init as
eventhandler required
#17089 7f05fface gcm_avx_init: zero the ghash state after hashing the IV
#17122 fe674998b Check portable objset MAC even if local is zeroed
Obtained from: OpenZFS
OpenZFS commit: fe674998bb2d0912660d8aa3f2904b70f57497b0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16857 387ed5ca4 Add recursive dataset mounting and unmounting support
to pam_zfs_key
#16929 c2458ba92 optimize recv_fix_encryption_hierarchy()
#16980 12f0baf34 Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform
#16986 40496514b Expand fragmentation table to reflect larger possibile
allocation sizes
#17003 88020b993 Add kstats tracking gang allocations
#17013 21205f648 Avoid ARC buffer transfrom operations in prefetch
#17016 390f6c119 zio: lock parent zios when updating wait counts on
reexecute
#17029 b8c73ab78 zio: do no-op injections just before handing off to vdevs
#17037 6a2f7b384 Fix metaslab group fragmentation math
#17040 b901d4a0b Update the dataset name in handle after zfs_rename
Obtained from: OpenZFS
OpenZFS commit: 6a2f7b38442b42f4bc9a848f8de10fc792ce8d76
|
| |
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16938 2aa3fbe76 zinject: count matches and injections for each handler
#16947 -multiple zinject: add "probe" device injection type
#16976 34205715e FreeBSD: Add setting of the VFCF_FILEREV flag
Obtained from: OpenZFS
OpenZFS commit: 34205715e1544d343f9a64149b17c371282306ae
|
| |
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16942 fae4c664a FreeBSD: Use ashift in vdev_check_boot_reserve()
Obtained from: OpenZFS
OpenZFS commit: fae4c664a4a67f51d13520ab432d96315d880af8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16851 19a04e5ad BRT: Check bv_mos_entries in brt_entry_lookup()
#16854 6c9b4f18d Fix DR_OVERRIDDEN use-after-free race in dbuf_sync_leaf
#16855 fbea92432 flush: don't report flush error when disabling flush
support
#16862 ecc0970e3 backtrace: fix off-by-one on string output
#16864 939e0237c Too many vdev probe errors should suspend pool
#16868 ff6266ee9 Fix use-afer-free regression in RAIDZ expansion
#16871 acda137d8 simd_stat: fix undefined CONFIG_KERNEL_MODE_NEON error
on armel
#16877 219a89cbb Skip iterating over snapshots for share properties
#16881 ab7cbbe78 zprop: fix value help for ZPOOL_PROP_CAPACITY
#16883 f00a57a78 zfs_main: fix alignment on props usage output
#16887 -multiple userprops: make clearing pool & vdev userprops work
the same
#16888 c37a2ddaa microzap: set hard upper limit of 1M
#16890 1acd24696 Fix readonly check for vdev user properties
#16901 9dd5fe109 zvol: implement platform-independent part of block cloning
#16909 54126fdb5 set zfs_arc_shrinker_limit to 0 by default
#16912 25238baad Add missing zfs_exit() when snapdir is disabled
#16918 478b09577 zfs_vnops_os.c: fallocate is valid but not supported
on FreeBSD
#16921 c02e1cf05 vdev_open: clear async remove flag after reopen
#16923 dc0324bfa fix: make zfs_strerror really thread-safe and portable
Obtained from: OpenZFS
OpenZFS commit: b8e09c7007a0733a497aebe734cb8ed23a0415ae
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16215 44446dccd During pool export flush the ARC asynchronously
#16301 4b4e346b9 Add ability to scrub from last scrubbed txg
#16755 0ffa6f346 zdb: show dedup table and log attributes
#16801 1cd2419ec Fix race in libzfs_run_process_impl
#16814 a01504b35 Improve speculative prefetcher for block cloning
#16819 a44eaf169 Optimize RAIDZ expansion
#16825 e8b333e4d Fix false assertion in dmu_tx_dirty_buf() on cloning
#16829 6e3c109bc Fix regression in dmu_buf_will_fill()
#16832 2507db612 zdb_il: use flex array member to access ZIL records
#16834 0e020bf3e FreeBSD: Remove an incorrect assertion in zfs_getpages()
#16836 c33a55b0c Allow dsl_deadlist_open() return errors
Obtained from: OpenZFS
OpenZFS commit: e0039c70573e455f4745a83b7d5a6a5f6f2e58a8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16643 -multiple Change rangelock handling in FreeBSD's zfs_getpages()
#16697 46c4f2ce0 dsl_dataset: put IO-inducing frees on the pool deadlist
#16740 -multiple BRT: Rework structures and locks to be per-vdev
#16743 a60ed3822 L2ARC: Move different stats updates earlier
#16758 8dc452d90 Fix some nits in zfs_getpages()
#16759 534688948 Remove hash_elements_max accounting from DBUF and ARC
#16766 9a81484e3 ZAP: Reduce leaf array and free chunks fragmentation
#16773 457f8b76e BRT: More optimizations after per-vdev splitting
#16782 0ca82c568 L2ARC: Stop rebuild before setting spa_final_txg
#16785 d76d79fd2 zio: Avoid sleeping in the I/O path
#16791 ae1d11882 BRT: Clear bv_entcount_dirty on destroy
#16796 b3b0ce64d FreeBSD: Lock vnode in zfs_ioctl()
#16797 d0a91b9f8 FreeBSD: Reduce copy_file_range() source lock to shared
Obtained from: OpenZFS
OpenZFS commit: d0a91b9f88a47316158508bf304a61baa8c99c10
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16244 acb6e71ed Added output to `zpool online` and `offline`
#16684 94a03dd1e Pack dmu_buf_impl_t by 16 bytes
#16690 6187b1943 On the first vdev open ignore impossible ashift hints
#16692 673efbbf5 zdb: add extra -T flag to show histograms of BRT refcounts
#16693 2bf152021 Fix gcc uninitialized warning in FreeBSD zio_crypt.c
#16694 b16e09619 Reduce dirty records memory usage
#16701 5945676bc ZFS send should use spill block prefetched from
send_reader_thread
#16734 1c9a4c8cb Fix user properties output for zpool list
Obtained from: OpenZFS
OpenZFS commit: 1c9a4c8cb44d5f865c29e3df3f019872329554b3
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With gcc we are seeing the following -Werror warning:
In file included from /workspace/src/sys/contrib/openzfs/include/os/freebsd/spl/sys/sunddi.h:28,
from /workspace/src/sys/contrib/openzfs/include/sys/zfs_context.h:69:
In function 'zfs_uio_init',
inlined from 'zio_do_crypt_data' at /workspace/src/sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c:1690:2:
/workspace/src/sys/contrib/openzfs/include/os/freebsd/spl/sys/uio.h:102:45: error: 'puio_s.uio_offset' is used uninitialized [-Werror=uninitialized]
102 | zfs_uio_soffset(uio) = uio_s->uio_offset;
| ~~~~~^~~~~~~~~~~~
/workspace/src/sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c: In function 'zio_do_crypt_data':
/workspace/src/sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c:1683:20: note: 'puio_s' declared here
1683 | struct uio puio_s, cuio_s;
| ^~~~~~
In function 'zfs_uio_init',
inlined from 'zio_do_crypt_data' at /workspace/src/sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c:1691:2:
/workspace/src/sys/contrib/openzfs/include/os/freebsd/spl/sys/uio.h:102:45: error: 'cuio_s.uio_offset' is used uninitialized [-Werror=uninitialized]
102 | zfs_uio_soffset(uio) = uio_s->uio_offset;
| ~~~~~^~~~~~~~~~~~
/workspace/src/sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c: In function 'zio_do_crypt_data':
/workspace/src/sys/contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c:1683:28: note: 'cuio_s' declared here
1683 | struct uio puio_s, cuio_s;
| ^~~~~~
Indeed, `zfs_uio_init()` does:
static __inline void
zfs_uio_init(zfs_uio_t *uio, struct uio *uio_s)
{
memset(uio, 0, sizeof (zfs_uio_t));
if (uio_s != NULL) {
GET_UIO_STRUCT(uio) = uio_s;
zfs_uio_soffset(uio) = uio_s->uio_offset;
}
}
while the code in `zio_crypt.c` has:
/*
* Primary encryption / decryption entrypoint for zio data.
*/
int
zio_do_crypt_data(boolean_t encrypt, zio_crypt_key_t *key,
dmu_object_type_t ot, boolean_t byteswap, uint8_t *salt, uint8_t *iv,
uint8_t *mac, uint_t datalen, uint8_t *plainbuf, uint8_t *cipherbuf,
boolean_t *no_crypt)
{
int ret;
boolean_t locked = B_FALSE;
uint64_t crypt = key->zk_crypt;
uint_t keydata_len = zio_crypt_table[crypt].ci_keylen;
uint_t enc_len, auth_len;
zfs_uio_t puio, cuio;
struct uio puio_s, cuio_s;
uint8_t enc_keydata[MASTER_KEY_MAX_LEN];
crypto_key_t tmp_ckey, *ckey = NULL;
freebsd_crypt_session_t *tmpl = NULL;
uint8_t *authbuf = NULL;
zfs_uio_init(&puio, &puio_s);
zfs_uio_init(&cuio, &cuio_s);
memset(GET_UIO_STRUCT(&puio), 0, sizeof (struct uio));
memset(GET_UIO_STRUCT(&cuio), 0, sizeof (struct uio));
So between the declaration of `puio_s` and `cuio_s`, there is no
initialization of these variables before `zfs_uio_init()` gets called.
Similar to the Linux variant of zio_crypt.c, I think it would be better
to memset the structs `puio_s` and `cuis_s` _before_ calling
`zfs_uio_init()`.
Reviewed by: tsoome
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D47281
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#16598 b4e4cbeb2 Always validate checksums for Direct I/O reads
#16603 cefef28e9 vdev_id: multi-lun disks & slot num zero pad
#16613 ab777f436 Return boolean_t in inline functions of
lib/libspl/include/sys/uio.h
#16616 efeb60b86 FreeBSD: ignore some includes when not building kernel
#16617 ca0141f32 zpool/zfs: restore -V & --version options
#16632 7bf525530 zpool/zfs: allow --json wherever -j is allowed
#16635 7e4be9275 zdb: fix printf format in dump_zap()
#16640 48dfe3974 Fallback to strerror() when strerror_l() isn't available
#16650 38a04f0a7 freebsd: Use compiler.h from FreeBSD's base's linuxkpi
#16664 fba6a9069 zfs_debug: Restore log size limit for userspace
#16665 fba6a9069 Fix compile-time warnings caused by duplicate struct
typedefs
#16667 b2f6de7b5 zdb: show bp in uberblock dump
Obtained from: OpenZFS
OpenZFS commit: b2f6de7b58f81a4894ba26d87865a15e6115a1c2
|