Date: Mon, 28 Apr 1997 19:06:08 -0700 (PDT) From: KATO Takenori <kato@freefall.FreeBSD.ORG> To: CVS-committers@FreeBSD.org, cvs-all@FreeBSD.org, cvs-sys@FreeBSD.org Subject: cvs commit: src/sys/miscfs/union union_vnops.c Message-ID: <199704290206.TAA02655@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
kato 97/04/28 19:06:08 Modified: sys/miscfs/union union_vnops.c Log: Revised fix for locking violation when unionfs calls vput with UN_KLOCK flag. When UN_KLOCK is set, VOP_UNLOCK should keep uppervp locked and clear UN_ULOCK flag. To do this, when UN_KLOCK is set, (1) union_unlock clears UN_ULOCK and does not clear UN_KLOCK, (2) union_lock() does not access uppervp and does not clear UN_KLOCK, and (3) callers of vput/VOP_UNLOCK should clear UN_KLOCK. For example, vput becomes: SETKLOCK(union_node); vput(vnode); CLEARKLOCK(union_node); where SETKLOCK macro sets UN_KLOCK and CLEARKLOCK macro clears UN_KLOCK. Revision Changes Path 1.31 +36 -32 src/sys/miscfs/union/union_vnops.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704290206.TAA02655>