version 1.50, 2003/04/17 20:50:46 |
version 1.51, 2003/04/18 21:55:35 |
Line 162 procfs_allocvp(mp, vpp, pid, pfs_type, f |
|
Line 162 procfs_allocvp(mp, vpp, pid, pfs_type, f |
|
case DTYPE_VNODE: |
case DTYPE_VNODE: |
vxp = (struct vnode *)fp->f_data; |
vxp = (struct vnode *)fp->f_data; |
|
|
/* Do not allow opening directories */ |
/* |
if (vxp->v_type == VDIR) { |
* We make symlinks for directories |
error = EOPNOTSUPP; |
* to avoid cycles. |
FILE_UNUSE(fp, pown); |
*/ |
goto bad; |
if (vxp->v_type == VDIR) |
} |
goto symlink; |
|
|
vp->v_type = vxp->v_type; |
vp->v_type = vxp->v_type; |
break; |
break; |
case DTYPE_PIPE: |
case DTYPE_PIPE: |
Line 177 procfs_allocvp(mp, vpp, pid, pfs_type, f |
|
Line 176 procfs_allocvp(mp, vpp, pid, pfs_type, f |
|
case DTYPE_SOCKET: |
case DTYPE_SOCKET: |
vp->v_type = VSOCK; |
vp->v_type = VSOCK; |
break; |
break; |
|
case DTYPE_KQUEUE: |
|
case DTYPE_MISC: |
|
symlink: |
|
pfs->pfs_mode = S_IRUSR|S_IXUSR|S_IRGRP| |
|
S_IXGRP|S_IROTH|S_IXOTH; |
|
vp->v_type = VLNK; |
|
break; |
default: |
default: |
error = EOPNOTSUPP; |
error = EOPNOTSUPP; |
FILE_UNUSE(fp, pown); |
FILE_UNUSE(fp, pown); |