diff options
author | delphij <delphij@FreeBSD.org> | 2015-01-10 01:01:12 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2015-01-10 01:01:12 +0000 |
commit | e6623583d128198b7dd7b6a68d0f525b0d4d19f8 (patch) | |
tree | 0851c5f443f323039d4fb038eda297d81fee5e7b /lib/libc/stdlib/insque.c | |
parent | 1009c8aa89624237add7b8bca851e09b29347d8a (diff) | |
download | FreeBSD-src-e6623583d128198b7dd7b6a68d0f525b0d4d19f8.zip FreeBSD-src-e6623583d128198b7dd7b6a68d0f525b0d4d19f8.tar.gz |
MFC r264392 (davide):
Fix a panic in zfs_rename().
this is due to a wrong dereference of a vnode when it's not locked and
can be (potentially) recycled. 'sdvp' cannot be locked on zfs_rename()
entry point because the VFS can't be sure that this scenario is
LOR-free (it might violate the parent->child lock acquisition rule).
Dereference 'tdvp' instead, which is already locked on entry, and access
'sdvp' fields only when it's safe, i.e. under ZFS_ENTER scope.
While at it, remove the usage of VOP_REALVP, as long as this is a NOP
on FreeBSD.
Diffstat (limited to 'lib/libc/stdlib/insque.c')
0 files changed, 0 insertions, 0 deletions