freebsd-dev/sys/miscfs
KATO Takenori a9320ff3bd 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.
1997-04-29 02:06:07 +00:00
..
deadfs Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
devfs Get the declaration of `struct dirent' from <sys/dirent.h>, not from 1997-04-10 15:05:38 +00:00
fdesc Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
fifofs Don't include <sys/ioctl.h> in the kernel. Stage 3: include 1997-03-24 11:37:53 +00:00
kernfs Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
nullfs Avoid `lock against myself' panic by following operation: 1997-04-19 06:04:13 +00:00
portal Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined. 1997-03-23 03:37:54 +00:00
procfs Removed bogon from previous commit: doubly included sys/systm.h. 1997-04-27 21:32:21 +00:00
specfs Don't include <sys/ioctl.h> in the kernel. Stage 1: don't include 1997-03-24 11:25:10 +00:00
umapfs Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
union Revised fix for locking violation when unionfs calls vput with 1997-04-29 02:06:07 +00:00