HomeFreeBSD

Fix a couple of vnode locking cases found during testing with VFS_DEBUG_LOCKS.

Description

Fix a couple of vnode locking cases found during testing with VFS_DEBUG_LOCKS.
The removal of DS files was being done when the main thread held an exclusive
lock on the directory instead of the taskqueue threads that did the VOP calls.
I think this was safe, but DEBUG_VFS_LOCKS expects the thread doing the VOP
calls to hold the lock. This patch makes the taskqueue threads acquire/release
the vnode lock on the directory.
There was also a case when a VOP_SETEXTATTR() would be done with a shared
vnode lock. For this case, just avoid doing the vn_extattr_set() call.
(It may be necessary to change this to doing it after a LK_UPGRADE in the
future, it clients break because the pnfsd.dsattr extended attribute doesn't
get updated, due to this.)

Details

Provenance
rmacklemAuthored on
Parents
rS334557: top(1): restore size for kern.cp_times
Branches
Unknown
Tags
Unknown