summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2009-06-12 21:19:57 +0000
committerjhb <jhb@FreeBSD.org>2009-06-12 21:19:57 +0000
commit01a6f1d14b53778dbb31fdecbfa8f690fca99973 (patch)
treeed160435387e96a7e199a1f319cc353ea227d151 /sys/fs
parent6d318791b0f30e23d590ddddbf610f774c8e04ae (diff)
downloadFreeBSD-src-01a6f1d14b53778dbb31fdecbfa8f690fca99973.zip
FreeBSD-src-01a6f1d14b53778dbb31fdecbfa8f690fca99973.tar.gz
Update the inline version of vn_get_ino() for ".." lookups to match the
recentish changes to vn_get_ino(). MFC after: 1 week
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/cd9660/cd9660_lookup.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/fs/cd9660/cd9660_lookup.c b/sys/fs/cd9660/cd9660_lookup.c
index ae6d3f8..e23d8f3 100644
--- a/sys/fs/cd9660/cd9660_lookup.c
+++ b/sys/fs/cd9660/cd9660_lookup.c
@@ -374,15 +374,17 @@ found:
*/
mp = pdp->v_mount;
ltype = VOP_ISLOCKED(pdp);
- for (;;) {
- error = vfs_busy(mp, MBF_NOWAIT);
- if (error == 0)
- break;
+ error = vfs_busy(mp, MBF_NOWAIT);
+ if (error != 0) {
VOP_UNLOCK(pdp, 0);
- pause("vn_vget", 1);
+ error = vfs_busy(mp, 0);
vn_lock(pdp, ltype | LK_RETRY);
- if (pdp->v_iflag & VI_DOOMED)
+ if (error)
+ return (ENOENT);
+ if (pdp->v_iflag & VI_DOOMED) {
+ vfs_unbusy(mp);
return (ENOENT);
+ }
}
VOP_UNLOCK(pdp, 0);
error = cd9660_vget_internal(vdp->v_mount, i_ino,
OpenPOWER on IntegriCloud