diff options
author | kato <kato@FreeBSD.org> | 1997-04-26 13:43:25 +0000 |
---|---|---|
committer | kato <kato@FreeBSD.org> | 1997-04-26 13:43:25 +0000 |
commit | f90d800c9a8b8cedf55d38176b3a8d5384b1ef9f (patch) | |
tree | 3450d78eaa76cdb65138a7706b827bb152c4d057 /sys/fs | |
parent | e7ce274b1e26b60138ec47a1a74e8b7ca87f2231 (diff) | |
download | FreeBSD-src-f90d800c9a8b8cedf55d38176b3a8d5384b1ef9f.zip FreeBSD-src-f90d800c9a8b8cedf55d38176b3a8d5384b1ef9f.tar.gz |
Do nothing instead of adjusting un_flags when (uppervp is locked) &&
(UN_ULOCK is not set) in union_lock. This condition may indicate
race. DIAGNOSTIC kernel still panic here.
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/unionfs/union_vnops.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index cc632a2..f80a07f 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * @(#)union_vnops.c 8.32 (Berkeley) 6/23/95 - * $Id: union_vnops.c,v 1.27 1997/04/21 15:32:24 kato Exp $ + * $Id: union_vnops.c,v 1.28 1997/04/26 04:09:40 kato Exp $ */ #include <sys/param.h> @@ -1479,21 +1479,13 @@ start: (vp->v_usecount != 0)) { if (VOP_ISLOCKED(un->un_uppervp)) { /* - * XXX - Dirty! - * Though UN_ULOCK is not set, upper vnode is locked. This - * indicates a locking violation. If this case happens, - * we will get `lock against myself' panic. - * - * SHOULD BE FIXED! But I couldn't find a fix. If you are - * a kernel hacker, pleas try DIAGNOSTIC kernel, that causes - * panic here. + * Erm, we find race! + * Do nothing here. */ #ifdef DIAGNOSTIC panic("union_link: upper vnode is locked, " "but UN_UNLOCK is not set."); #endif - printf("union_lock: adjust un_flags\n"); - un->un_flags |= UN_ULOCK; /* Adjust -- dirty */ } else { error = vn_lock(un->un_uppervp, flags, p); if (error) |