Adjust error case handling. If the VOP_LOOKUP() call unlocked the
parent directory node, remember that. Addresses locking/lookup issues seen in: http://mail-index.NetBSD.org/tech-kern/2004/06/20/0019.html http://mail-index.netbsd.org/tech-kern/2005/01/08/0000.html
This commit is contained in:
parent
a7d17de7d6
commit
a758abc39e
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: vfs_lookup.c,v 1.56 2005/02/26 21:34:56 perry Exp $ */
|
||||
/* $NetBSD: vfs_lookup.c,v 1.57 2005/03/08 17:29:29 wrstuden Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1993
|
||||
|
@ -37,7 +37,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.56 2005/02/26 21:34:56 perry Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.57 2005/03/08 17:29:29 wrstuden Exp $");
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
#include "opt_systrace.h"
|
||||
|
@ -528,6 +528,9 @@ unionlookup:
|
|||
goto unionlookup;
|
||||
}
|
||||
|
||||
if (cnp->cn_flags & PDIRUNLOCK)
|
||||
dpunlocked = 1;
|
||||
|
||||
if (error != EJUSTRETURN)
|
||||
goto bad;
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue