DF-3206 / fix.diff
--- a/sys/vfs/isofs/cd9660/cd9660_lookup.c +++ b/sys/vfs/isofs/cd9660/cd9660_lookup.c @@ -335,14 +335,17 @@ found: /* * If ino is different from dp->i_ino, * it's a relocated directory. */ if (flags & CNP_ISDOTDOT) { + ino_t parent_ino = dp->i_ino; /* shared scan-scratch */ + int relocated = (dp->i_ino != ino); vn_unlock(pdp); /* race to get the inode */ - error = cd9660_vget_internal(vdp->v_mount, dp->i_ino, &tdp, - dp->i_ino != ino, ep); + error = cd9660_vget_internal(vdp->v_mount, parent_ino, &tdp, + relocated, ep); brelse(bp); if (error) { vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY); return (error); |