diff options
| author | Don Lewis <truckman@FreeBSD.org> | 2005-10-16 21:39:29 +0000 |
|---|---|---|
| committer | Don Lewis <truckman@FreeBSD.org> | 2005-10-16 21:39:29 +0000 |
| commit | 9e4ce0ae8fd2c146e16d12c369f3fd41aecc5053 (patch) | |
| tree | 95870005119797db26c620bcb19d213c1d52d3a0 /sys/gnu | |
| parent | 875e1087559dae3a411d98f583464c7dcddd01d9 (diff) | |
Notes
Diffstat (limited to 'sys/gnu')
| -rw-r--r-- | sys/gnu/fs/ext2fs/ext2_lookup.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_lookup.c b/sys/gnu/fs/ext2fs/ext2_lookup.c index a23887860c9a..d057e2a9d079 100644 --- a/sys/gnu/fs/ext2fs/ext2_lookup.c +++ b/sys/gnu/fs/ext2fs/ext2_lookup.c @@ -319,6 +319,7 @@ ext2_lookup(ap) int flags = cnp->cn_flags; int nameiop = cnp->cn_nameiop; struct thread *td = cnp->cn_thread; + ino_t saved_ino; int DIRBLKSIZ = VTOI(ap->a_dvp)->i_e2fs->s_blocksize; @@ -655,8 +656,9 @@ found: */ pdp = vdp; if (flags & ISDOTDOT) { + saved_ino = dp->i_ino; VOP_UNLOCK(pdp, 0, td); /* race to get the inode */ - error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, &tdp); + error = VFS_VGET(vdp->v_mount, saved_ino, LK_EXCLUSIVE, &tdp); vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); if (error != 0) return (error); |
