mirror_zfs/module/os/freebsd/zfs
Mark Johnston 57f43735ca Fix several bugs in the FreeBSD rename VOP implementation
- To avoid a use-after-free, zfsvfs->z_log needs to be loaded after the
  teardown lock is acquired with ZFS_ENTER().
- Avoid leaking vnode locks in zfs_rename_relock() and zfs_rename_()
  when the ZFS_ENTER() macros forces an early return.

Refactor the rename implementation so that ZFS_ENTER() can be used
safely.  As a bonus, this lets us use the ZFS_VERIFY_ZP() macro instead
of open-coding its implementation.

Reported-by: Peter Holm <pho@FreeBSD.org>
Tested-by: Peter Holm <pho@FreeBSD.org>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com>
Signed-off-by: Mark Johnston <markj@FreeBSD.org>
Sponsored-by: The FreeBSD Foundation
Closes #12717
2021-12-13 11:56:03 -08:00
..
abd_os.c
arc_os.c FreeBSD: avoid memory allocation in arc_prune_async 2021-12-07 11:18:28 -08:00
crypto_os.c Extending FreeBSD UIO Struct 2021-11-12 16:31:55 -08:00
dmu_os.c Fix assert in FreeBSD-specific dmu_read_pages 2021-03-05 12:58:08 -08:00
hkdf.c
kmod_core.c Avoid taking global lock to destroy zfsdev state 2021-06-23 13:22:14 -07:00
spa_os.c FreeBSD: Add option to rewind checkpoint while importing root pool 2020-08-19 17:19:42 -07:00
sysctl_os.c Share zfs_fsync, zfs_read, zfs_write, et al between Linux and FreeBSD 2020-12-23 14:34:59 -08:00
vdev_file.c vdev_ashift should only be set once 2020-09-18 12:40:20 -07:00
vdev_geom.c Update checkstyle workflow env to ubuntu-20.04 2021-11-12 16:31:55 -08:00
vdev_label_os.c
zfs_acl.c Use fallthrough macro 2021-11-12 15:24:36 -08:00
zfs_ctldir.c Extending FreeBSD UIO Struct 2021-11-12 16:31:55 -08:00
zfs_debug.c
zfs_dir.c FreeBSD: rework asserts in zfs_dd_lookup 2021-06-23 13:22:14 -07:00
zfs_file_os.c Extending FreeBSD UIO Struct 2021-11-12 16:31:55 -08:00
zfs_ioctl_compat.c FreeBSD: Fix legacy compat for platform IOCs 2020-10-01 12:23:00 -07:00
zfs_ioctl_os.c Make zc_nvlist_src_size limit tunable 2020-08-18 09:33:55 -07:00
zfs_racct.c Restore FreeBSD resource usage accounting 2021-03-05 12:50:32 -08:00
zfs_vfsops.c FreeBSD: incorporate changes to the VFS_QUOTACTL(9) KPI 2021-06-23 13:22:15 -07:00
zfs_vnops_os.c Fix several bugs in the FreeBSD rename VOP implementation 2021-12-13 11:56:03 -08:00
zfs_znode.c FreeBSD: Initialize/destroy zp->z_lock 2021-06-23 13:22:15 -07:00
zio_crypt.c Extending FreeBSD UIO Struct 2021-11-12 16:31:55 -08:00
zvol_os.c Extending FreeBSD UIO Struct 2021-11-12 16:31:55 -08:00