> On 1. Jul 2021, at 18:24, Martin Husemann <[email protected]> wrote: > > I did not trust macppc / lockdebug so reproduced it on evbarm. > > Unfortunately nearly identical (not making any sense to me) output again...
I'm quite sure one thread does something like
lookup_fastforward -> lookup_parsepath -> VOP_PARSEPATH -> ... ->
fstrans_start
where dvp->v_mount is currently unmounting and therefore suspended.
If lookup_fastforward holds a lock on vi_nc_lock we have a deadlock.
According to vnode_if.src VOP_PARSEPATH(dvp...) should take a locked vnode
but here this lock is missing. So either
- make sure the vnode is locked so fstrans_start will no loner block.
or
- add FSTRANS=NO to vop_parsepath, file kern/vnode_if.src and allow unlocked
vnodes:
vop_parsepath {
+ FSTRANS=NO
IN struct vnode *dvp;
David?
--
J. Hannken-Illjes - [email protected] - TU Braunschweig
signature.asc
Description: Message signed with OpenPGP
