Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Sep 1997 12:41:56 +0900
From:      KATO Takenori <kato@migmatite.eps.nagoya-u.ac.jp>
To:        current@FreeBSD.ORG
Subject:   deadlock in vgonel() by unionfs operation
Message-ID:  <199709030341.MAA07105@gneiss.eps.nagoya-u.ac.jp>

next in thread | raw e-mail | index | archive | help
I got deadlock condition with unionfs.  The deadlock can be easily
reproduced by:

	% mount -t union foo bar
	% ls foo
	...
	% ls bar
	  (never returns)

The ls sleeps in vgonel() by:

    /*
     * If a vgone (or vclean) is already in progress,
     * wait until it is done and return.
     */
    if (vp->v_flag & VXLOCK) {
        vp->v_flag |= VXWANT;
        simple_unlock(&vp->v_interlock);
        tsleep((caddr_t)vp, PINOD, "vgone", 0);  <---- Here!
        return;
    }


The problem occurs since the change of vfs stuff in August.  I think
there is something locking violation or missing usecount operation.

----
KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp>
Dept. Earth Planet. Sci., Nagoya Univ.,  Nagoya, 464-01, Japan
PGP public key: finger kato@eclogite.eps.nagoya-u.ac.jp
------------------- Powered by FreeBSD(98) -------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709030341.MAA07105>