Skip site navigation (1)Skip section navigation (2)
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>