mirror_zfs/module/os/freebsd/zfs
Mark Maybee 7ff329ac2e
Fix rangelock test for growing block size
If the file already has more than one block, then the current
block size cannot change. But if the file block size is less
than the maximum block size supported by the file system, and
there are multiple blocks in the file, the current code will
almost always extend the rangelock to its maximum size.
This means that all writes become serialized and even reads
are slowed as they will more often contend with writes. This
commit adjusts the test so that we will not lock the entire
range if there is more than one block in the file already.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Mark Maybee <mark.maybee@perforce.com>
Closes #18046
Closes #18064
2025-12-18 09:23:38 -08:00
..
abd_os.c Prefer VERIFY0P(n) over VERIFY3P(n, ==, NULL) 2025-08-07 11:41:42 -07:00
arc_os.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
crypto_os.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
dmu_os.c Pass flags to more DMU write/hold functions 2025-10-29 11:17:51 -07:00
event_os.c FreeBSD: remove support for FreeBSD < 13.0-RELEASE (#16372) 2024-08-05 16:56:45 -07:00
hkdf.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
kmod_core.c Retire zfs_autoimport_disable kmod option 2025-08-14 14:58:58 -07:00
spa_os.c spa_misc: add an API for spa_namespace_lock 2025-11-10 14:23:39 -08:00
sysctl_os.c tunables: remove legacy FreeBSD aliases 2025-09-08 10:03:01 -07:00
vdev_geom.c Prefer VERIFY0P(n) over VERIFY3P(n, ==, NULL) 2025-08-07 11:41:42 -07:00
vdev_label_os.c Cleanup ZIO_FLAG_IO_RETRY vs TRYHARD usage 2025-10-30 16:29:48 -07:00
zfs_acl.c Pass flags to more DMU write/hold functions 2025-10-29 11:17:51 -07:00
zfs_ctldir.c FreeBSD: Correct _PC_MIN_HOLE_SIZE 2025-10-08 09:13:22 -04:00
zfs_debug.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_dir.c Prefer VERIFY0(n) over VERIFY3U(n, ==, 0) 2025-08-07 11:41:25 -07:00
zfs_file_os.c Enable zhack to work properly with 4k sector size disks 2025-09-10 11:13:55 -07:00
zfs_ioctl_compat.c SPDX: license tags: BSD-2-Clause 2025-03-13 17:56:46 -07:00
zfs_ioctl_os.c spa_misc: add an API for spa_namespace_lock 2025-11-10 14:23:39 -08:00
zfs_racct.c Wire O_DIRECT also to Uncached I/O (#17218) 2025-05-13 14:26:55 -07:00
zfs_vfsops.c ZIL: allow zil_commit() to fail with error 2025-08-08 16:43:09 -07:00
zfs_vnops_os.c FreeBSD: Fix a potential null dereference in zfs_freebsd_fsync() 2025-12-08 13:46:30 -08:00
zfs_znode_os.c Fix rangelock test for growing block size 2025-12-18 09:23:38 -08:00
zio_crypt.c FreeBSD zio_crypt.c: initialize uio variables before access 2025-10-23 21:23:25 -04:00
zvol_os.c spa_misc: add an API for spa_namespace_lock 2025-11-10 14:23:39 -08:00