> 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

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to