freebsd-nq/sys/cddl
Andriy Gapon 0ab1aa90fa fix locking in zfsctl_root_lookup
Dropping the root vnode's lock after VFS_ROOT() didn't really help the
fact that we acquired the lock while holding its child's, .zfs, lock
while performing the operaiton.
So, directly use zfs_zget() to get the root vnode.

While there simplify the code in zfsctl_freebsd_root_lookup.
We know that .zfs is always exclusively locked.
We know that there is already a reference on *vpp, so no need for an
extra one.
Account for the fact that .. lookup may ask for a different lock type,
not necessarily LK_EXCLUSIVE.  And handle a possible failure to acquire
the lock given the lock flags.

MFC after:	5 weeks
2016-05-16 15:28:39 +00:00
..
boot/zfs Include arpa/inet.h to get the htonl(3) definition 2016-05-13 11:15:33 +00:00
compat/opensolaris fix a vnode reference leak caused by illumos compat traverse() 2016-05-16 12:15:19 +00:00
contrib/opensolaris fix locking in zfsctl_root_lookup 2016-05-16 15:28:39 +00:00
dev Add an EARLY_AP_STARTUP option to start APs earlier during boot. 2016-05-14 18:22:52 +00:00