version 1.302, 2007/02/18 20:36:36 |
version 1.303, 2007/02/28 20:39:06 |
Line 995 sys_fchdir(struct lwp *l, void *v, regis |
|
Line 995 sys_fchdir(struct lwp *l, void *v, regis |
|
error = ENOTDIR; |
error = ENOTDIR; |
else |
else |
error = VOP_ACCESS(vp, VEXEC, l->l_cred, l); |
error = VOP_ACCESS(vp, VEXEC, l->l_cred, l); |
|
if (error) { |
|
vput(vp); |
|
goto out; |
|
} |
while (!error && (mp = vp->v_mountedhere) != NULL) { |
while (!error && (mp = vp->v_mountedhere) != NULL) { |
if (vfs_busy(mp, 0, 0)) |
if (vfs_busy(mp, 0, 0)) |
continue; |
continue; |
Line 1003 sys_fchdir(struct lwp *l, void *v, regis |
|
Line 1007 sys_fchdir(struct lwp *l, void *v, regis |
|
error = VFS_ROOT(mp, &tdp); |
error = VFS_ROOT(mp, &tdp); |
vfs_unbusy(mp); |
vfs_unbusy(mp); |
if (error) |
if (error) |
break; |
goto out; |
vp = tdp; |
vp = tdp; |
} |
} |
if (error) { |
|
goto out; |
|
} |
|
VOP_UNLOCK(vp, 0); |
VOP_UNLOCK(vp, 0); |
|
|
/* |
/* |