Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_proc.c
| Show First 20 Lines • Show All 1,971 Lines • ▼ Show 20 Lines | sysctl_kern_proc_pathname(SYSCTL_HANDLER_ARGS) | ||||
| if (vp == NULL) { | if (vp == NULL) { | ||||
| if (*pidp != -1) | if (*pidp != -1) | ||||
| PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
| return (0); | return (0); | ||||
| } | } | ||||
| vref(vp); | vref(vp); | ||||
| if (*pidp != -1) | if (*pidp != -1) | ||||
| PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
| error = vn_fullpath(req->td, vp, &retbuf, &freebuf); | error = vn_fullpath(req->td, vp, 0, &retbuf, &freebuf); | ||||
| vrele(vp); | vrele(vp); | ||||
| if (error) | if (error) | ||||
| return (error); | return (error); | ||||
| error = SYSCTL_OUT(req, retbuf, strlen(retbuf) + 1); | error = SYSCTL_OUT(req, retbuf, strlen(retbuf) + 1); | ||||
| free(freebuf, M_TEMP); | free(freebuf, M_TEMP); | ||||
| return (error); | return (error); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | if (lobj) { | ||||
| } | } | ||||
| if (lobj != obj) | if (lobj != obj) | ||||
| VM_OBJECT_RUNLOCK(lobj); | VM_OBJECT_RUNLOCK(lobj); | ||||
| kve->kve_ref_count = obj->ref_count; | kve->kve_ref_count = obj->ref_count; | ||||
| kve->kve_shadow_count = obj->shadow_count; | kve->kve_shadow_count = obj->shadow_count; | ||||
| VM_OBJECT_RUNLOCK(obj); | VM_OBJECT_RUNLOCK(obj); | ||||
| if (vp != NULL) { | if (vp != NULL) { | ||||
| vn_fullpath(curthread, vp, &fullpath, | vn_fullpath(curthread, vp, 0, &fullpath, | ||||
| &freepath); | &freepath); | ||||
| cred = curthread->td_ucred; | cred = curthread->td_ucred; | ||||
| vn_lock(vp, LK_SHARED | LK_RETRY); | vn_lock(vp, LK_SHARED | LK_RETRY); | ||||
| if (VOP_GETATTR(vp, &va, cred) == 0) { | if (VOP_GETATTR(vp, &va, cred) == 0) { | ||||
| kve->kve_fileid = va.va_fileid; | kve->kve_fileid = va.va_fileid; | ||||
| kve->kve_fsid = va.va_fsid; | kve->kve_fsid = va.va_fsid; | ||||
| } | } | ||||
| vput(vp); | vput(vp); | ||||
| ▲ Show 20 Lines • Show All 212 Lines • ▼ Show 20 Lines | if (lobj != NULL) { | ||||
| } | } | ||||
| if (lobj != obj) | if (lobj != obj) | ||||
| VM_OBJECT_RUNLOCK(lobj); | VM_OBJECT_RUNLOCK(lobj); | ||||
| kve->kve_ref_count = obj->ref_count; | kve->kve_ref_count = obj->ref_count; | ||||
| kve->kve_shadow_count = obj->shadow_count; | kve->kve_shadow_count = obj->shadow_count; | ||||
| VM_OBJECT_RUNLOCK(obj); | VM_OBJECT_RUNLOCK(obj); | ||||
| if (vp != NULL) { | if (vp != NULL) { | ||||
| vn_fullpath(curthread, vp, &fullpath, | vn_fullpath(curthread, vp, 0, &fullpath, | ||||
| &freepath); | &freepath); | ||||
| kve->kve_vn_type = vntype_to_kinfo(vp->v_type); | kve->kve_vn_type = vntype_to_kinfo(vp->v_type); | ||||
| cred = curthread->td_ucred; | cred = curthread->td_ucred; | ||||
| vn_lock(vp, LK_SHARED | LK_RETRY); | vn_lock(vp, LK_SHARED | LK_RETRY); | ||||
| if (VOP_GETATTR(vp, &va, cred) == 0) { | if (VOP_GETATTR(vp, &va, cred) == 0) { | ||||
| kve->kve_vn_fileid = va.va_fileid; | kve->kve_vn_fileid = va.va_fileid; | ||||
| kve->kve_vn_fsid = va.va_fsid; | kve->kve_vn_fsid = va.va_fsid; | ||||
| kve->kve_vn_mode = | kve->kve_vn_mode = | ||||
| ▲ Show 20 Lines • Show All 663 Lines • Show Last 20 Lines | |||||