Page MenuHomeFreeBSD

D27193.id79469.diff
No OneTemporary

D27193.id79469.diff

Index: sys/kern/vfs_lookup.c
===================================================================
--- sys/kern/vfs_lookup.c
+++ sys/kern/vfs_lookup.c
@@ -1305,7 +1305,6 @@
relookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp)
{
struct vnode *dp = NULL; /* the directory we are searching */
- int wantparent; /* 1 => wantparent or lockparent flag */
int rdonly; /* lookup read-only flag bit */
int error = 0;
@@ -1314,8 +1313,8 @@
/*
* Setup: break out flag bits into variables.
*/
- wantparent = cnp->cn_flags & (LOCKPARENT|WANTPARENT);
- KASSERT(wantparent, ("relookup: parent not wanted."));
+ KASSERT((cnp->cn_flags & (LOCKPARENT|WANTPARENT)) != 0,
+ ("relookup: parent not wanted"));
rdonly = cnp->cn_flags & RDONLY;
cnp->cn_flags &= ~ISSYMLINK;
dp = dvp;
@@ -1406,13 +1405,8 @@
/*
* Set the parent lock/ref state to the requested state.
*/
- if ((cnp->cn_flags & LOCKPARENT) == 0 && dvp != dp) {
- if (wantparent)
- VOP_UNLOCK(dvp);
- else
- vput(dvp);
- } else if (!wantparent)
- vrele(dvp);
+ if ((cnp->cn_flags & LOCKPARENT) == 0 && dvp != dp)
+ VOP_UNLOCK(dvp);
/*
* Check for symbolic link
*/

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 9, 10:12 AM (5 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15731600
Default Alt Text
D27193.id79469.diff (1 KB)

Event Timeline