- vnode_path_to_vnode() now returns B_NOT_A_DIRECTORY instead of B_NOT_ALLOWED
as expected by POSIX programs. This allowed be to compile Haiku under itself without any hacks at all, so I guess this means that now we are officially self-hosting! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24720 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1821,6 +1821,15 @@ vnode_path_to_vnode(struct vnode *vnode, char *path, bool traverseLeafLink,
|
|||||||
|
|
||||||
if (status < B_OK) {
|
if (status < B_OK) {
|
||||||
put_vnode(vnode);
|
put_vnode(vnode);
|
||||||
|
if (status == B_NOT_ALLOWED) {
|
||||||
|
// We are only concerned about directories here, so
|
||||||
|
// B_NOT_ALLOWED is actually B_NOT_A_DIRECTORY. This
|
||||||
|
// happens because fs_access() can be called on files
|
||||||
|
// to and this would be valid outside of the context
|
||||||
|
// of vnode_path_to_vnode(). This is also what POSIX
|
||||||
|
// programs expect as return code in this case.
|
||||||
|
return B_NOT_A_DIRECTORY;
|
||||||
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user