> On 1. Jul 2021, at 18:24, Martin Husemann <martin%duskware.de@localhost> 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 - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig
Attachment:
signature.asc
Description: Message signed with OpenPGP