diff options
author | jeff <jeff@FreeBSD.org> | 2005-04-04 09:36:26 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2005-04-04 09:36:26 +0000 |
commit | 3ae5dd8f5a44f0dd82f93ff9433a82e0528a6d7a (patch) | |
tree | 364953b0b8cf54a0e93ec2af7be9cc9c3c69fe07 /sys/fs/unionfs/union_vnops.c | |
parent | 612ebdab4f79bbc89952ed0647ace180acee90c3 (diff) | |
download | FreeBSD-src-3ae5dd8f5a44f0dd82f93ff9433a82e0528a6d7a.zip FreeBSD-src-3ae5dd8f5a44f0dd82f93ff9433a82e0528a6d7a.tar.gz |
- Fix union's assumptions about when the dvp is unlocked. It is only
unlocked in the ISDOTDOT case now, not for all !ISLASTCN lookups.
Diffstat (limited to 'sys/fs/unionfs/union_vnops.c')
-rw-r--r-- | sys/fs/unionfs/union_vnops.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index 04e1ba2..ae80503 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -228,15 +228,15 @@ union_lookup1(udvp, pdvp, vpp, cnp) } /* - * The parent directory will have been unlocked, unless lookup - * found the last component or if dvp == tdvp (tdvp must be locked). + * The parent directory will have been unlocked, unless this is a + * dotdot lookup or if dvp == tdvp (tdvp must be locked). * * We want our dvp to remain locked and ref'd. We also want tdvp * to remain locked and ref'd. */ UDEBUG(("parentdir %p result %p flag %lx\n", dvp, tdvp, cnp->cn_flags)); - if (dvp != tdvp && (cnp->cn_flags & ISLASTCN) == 0) + if (dvp != tdvp && (cnp->cn_flags & ISDOTDOT)) vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td); /* |