diff options
author | Mark Johnston <[email protected]> | 2021-11-19 17:26:39 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2021-11-19 15:26:39 -0700 |
commit | ded851b2e09b86553152bddd1d00d0ff75a8caeb (patch) | |
tree | 81a7f75dbb6735145aa14bb7750b09345306faba /man/man7 | |
parent | f9e39f98a0f649c90b47dc547ed65072daec79f6 (diff) |
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 <[email protected]>
Tested-by: Peter Holm <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Reviewed-by: Tony Nguyen <[email protected]>
Signed-off-by: Mark Johnston <[email protected]>
Sponsored-by: The FreeBSD Foundation
Closes #12717
Diffstat (limited to 'man/man7')
0 files changed, 0 insertions, 0 deletions