Lines Matching refs:pdp

2242 pdinit(struct pwddesc *pdp, bool keeplock)  in pdinit()  argument
2253 if (pdp == NULL) { in pdinit()
2259 PWDDESC_XLOCK(pdp); in pdinit()
2260 newpwd = pwd_hold_pwddesc(pdp); in pdinit()
2263 PWDDESC_XUNLOCK(pdp); in pdinit()
2297 struct pwddesc *pdp; in pdhold() local
2300 pdp = atomic_load_ptr(&p->p_pd); in pdhold()
2301 if (pdp != NULL) in pdhold()
2302 refcount_acquire(&pdp->pd_refcount); in pdhold()
2303 return (pdp); in pdhold()
2320 pddrop(struct pwddesc *pdp) in pddrop() argument
2324 if (refcount_release_if_not_last(&pdp->pd_refcount)) in pddrop()
2327 PWDDESC_XLOCK(pdp); in pddrop()
2328 if (refcount_release(&pdp->pd_refcount) == 0) { in pddrop()
2329 PWDDESC_XUNLOCK(pdp); in pddrop()
2332 pwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pddrop()
2333 pwd_set(pdp, NULL); in pddrop()
2334 PWDDESC_XUNLOCK(pdp); in pddrop()
2337 PWDDESC_LOCK_DESTROY(pdp); in pddrop()
2338 free(pdp, M_PWDDESC); in pddrop()
2356 pdshare(struct pwddesc *pdp) in pdshare() argument
2358 refcount_acquire(&pdp->pd_refcount); in pdshare()
2359 return (pdp); in pdshare()
2385 struct pwddesc *pdp; in pdunshare() local
2393 pdp = pdcopy(p->p_pd); in pdunshare()
2395 p->p_pd = pdp; in pdunshare()
2444 pdcopy(struct pwddesc *pdp) in pdcopy() argument
2448 MPASS(pdp != NULL); in pdcopy()
2450 newpdp = pdinit(pdp, true); in pdcopy()
2451 newpdp->pd_cmask = pdp->pd_cmask; in pdcopy()
2452 PWDDESC_XUNLOCK(pdp); in pdcopy()
2612 struct pwddesc *pdp; in pdescfree() local
2615 pdp = p->p_pd; in pdescfree()
2616 MPASS(pdp != NULL); in pdescfree()
2625 pddrop(pdp); in pdescfree()
3931 pwd_hold_pwddesc(struct pwddesc *pdp) in pwd_hold_pwddesc() argument
3935 PWDDESC_ASSERT_XLOCKED(pdp); in pwd_hold_pwddesc()
3936 pwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_hold_pwddesc()
3956 struct pwddesc *pdp; in pwd_hold() local
3959 pdp = td->td_proc->p_pd; in pwd_hold()
3962 pwd = vfs_smr_entered_load(&pdp->pd_pwd); in pwd_hold()
3968 PWDDESC_XLOCK(pdp); in pwd_hold()
3969 pwd = pwd_hold_pwddesc(pdp); in pwd_hold()
3971 PWDDESC_XUNLOCK(pdp); in pwd_hold()
3978 struct pwddesc *pdp; in pwd_hold_proc() local
3983 pdp = pdhold(p); in pwd_hold_proc()
3984 MPASS(pdp != NULL); in pwd_hold_proc()
3987 PWDDESC_XLOCK(pdp); in pwd_hold_proc()
3988 pwd = pwd_hold_pwddesc(pdp); in pwd_hold_proc()
3990 PWDDESC_XUNLOCK(pdp); in pwd_hold_proc()
3991 pddrop(pdp); in pwd_hold_proc()
4031 struct pwddesc *pdp; in pwd_chroot() local
4037 pdp = td->td_proc->p_pd; in pwd_chroot()
4040 PWDDESC_XLOCK(pdp); in pwd_chroot()
4041 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_chroot()
4048 PWDDESC_XUNLOCK(pdp); in pwd_chroot()
4065 pwd_set(pdp, newpwd); in pwd_chroot()
4066 PWDDESC_XUNLOCK(pdp); in pwd_chroot()
4074 struct pwddesc *pdp; in pwd_chdir() local
4080 pdp = td->td_proc->p_pd; in pwd_chdir()
4081 PWDDESC_XLOCK(pdp); in pwd_chdir()
4082 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_chdir()
4085 pwd_set(pdp, newpwd); in pwd_chdir()
4086 PWDDESC_XUNLOCK(pdp); in pwd_chdir()
4096 struct pwddesc *pdp; in pwd_altroot() local
4100 pdp = td->td_proc->p_pd; in pwd_altroot()
4101 PWDDESC_XLOCK(pdp); in pwd_altroot()
4102 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_altroot()
4119 pwd_set(pdp, newpwd); in pwd_altroot()
4120 PWDDESC_XUNLOCK(pdp); in pwd_altroot()
4130 struct pwddesc *pdp; in pwd_chroot_chdir() local
4136 pdp = td->td_proc->p_pd; in pwd_chroot_chdir()
4139 PWDDESC_XLOCK(pdp); in pwd_chroot_chdir()
4140 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_chroot_chdir()
4144 PWDDESC_XUNLOCK(pdp); in pwd_chroot_chdir()
4160 pwd_set(pdp, newpwd); in pwd_chroot_chdir()
4161 PWDDESC_XUNLOCK(pdp); in pwd_chroot_chdir()
4169 struct pwddesc *pdp; in pwd_ensure_dirs() local
4172 pdp = curproc->p_pd; in pwd_ensure_dirs()
4173 PWDDESC_XLOCK(pdp); in pwd_ensure_dirs()
4174 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_ensure_dirs()
4177 PWDDESC_XUNLOCK(pdp); in pwd_ensure_dirs()
4180 PWDDESC_XUNLOCK(pdp); in pwd_ensure_dirs()
4183 PWDDESC_XLOCK(pdp); in pwd_ensure_dirs()
4184 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_ensure_dirs()
4198 pwd_set(pdp, newpwd); in pwd_ensure_dirs()
4199 PWDDESC_XUNLOCK(pdp); in pwd_ensure_dirs()
4206 struct pwddesc *pdp; in pwd_set_rootvnode() local
4209 pdp = curproc->p_pd; in pwd_set_rootvnode()
4212 PWDDESC_XLOCK(pdp); in pwd_set_rootvnode()
4213 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in pwd_set_rootvnode()
4221 pwd_set(pdp, newpwd); in pwd_set_rootvnode()
4222 PWDDESC_XUNLOCK(pdp); in pwd_set_rootvnode()
4233 struct pwddesc *pdp; in mountcheckdirs() local
4246 pdp = pdhold(p); in mountcheckdirs()
4248 if (pdp == NULL) in mountcheckdirs()
4250 PWDDESC_XLOCK(pdp); in mountcheckdirs()
4251 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in mountcheckdirs()
4257 PWDDESC_XUNLOCK(pdp); in mountcheckdirs()
4258 pddrop(pdp); in mountcheckdirs()
4278 pwd_set(pdp, newpwd); in mountcheckdirs()
4279 PWDDESC_XUNLOCK(pdp); in mountcheckdirs()
4281 pddrop(pdp); in mountcheckdirs()
4620 struct pwddesc *pdp; member
4667 if (efbuf->pdp != NULL) in export_vnode_to_sb()
4668 PWDDESC_XUNLOCK(efbuf->pdp); in export_vnode_to_sb()
4671 if (efbuf->pdp != NULL) in export_vnode_to_sb()
4672 PWDDESC_XLOCK(efbuf->pdp); in export_vnode_to_sb()
4687 struct pwddesc *pdp; in kern_proc_filedesc_out() local
4710 pdp = pdhold(p); in kern_proc_filedesc_out()
4715 efbuf->pdp = NULL; in kern_proc_filedesc_out()
4730 if (error != 0 || pdp == NULL || fdp == NULL) in kern_proc_filedesc_out()
4733 efbuf->pdp = pdp; in kern_proc_filedesc_out()
4734 PWDDESC_XLOCK(pdp); in kern_proc_filedesc_out()
4735 pwd = pwd_hold_pwddesc(pdp); in kern_proc_filedesc_out()
4756 PWDDESC_XUNLOCK(pdp); in kern_proc_filedesc_out()
4785 if (pdp != NULL) in kern_proc_filedesc_out()
4786 pddrop(pdp); in kern_proc_filedesc_out()
4862 struct kinfo_ofile *okif, struct pwddesc *pdp, struct sysctl_req *req) in export_vnode_for_osysctl() argument
4867 PWDDESC_XUNLOCK(pdp); in export_vnode_for_osysctl()
4871 PWDDESC_XLOCK(pdp); in export_vnode_for_osysctl()
4884 struct pwddesc *pdp; in sysctl_kern_proc_ofiledesc() local
4901 pdp = pdhold(p); in sysctl_kern_proc_ofiledesc()
4903 if (fdp == NULL || pdp == NULL) { in sysctl_kern_proc_ofiledesc()
4910 PWDDESC_XLOCK(pdp); in sysctl_kern_proc_ofiledesc()
4911 pwd = pwd_hold_pwddesc(pdp); in sysctl_kern_proc_ofiledesc()
4915 okif, pdp, req); in sysctl_kern_proc_ofiledesc()
4918 okif, pdp, req); in sysctl_kern_proc_ofiledesc()
4921 okif, pdp, req); in sysctl_kern_proc_ofiledesc()
4923 PWDDESC_XUNLOCK(pdp); in sysctl_kern_proc_ofiledesc()
4942 pddrop(pdp); in sysctl_kern_proc_ofiledesc()
4994 struct pwddesc *pdp; in kern_proc_cwd_out() local
5002 pdp = pdhold(p); in kern_proc_cwd_out()
5004 if (pdp == NULL) in kern_proc_cwd_out()
5009 efbuf->pdp = pdp; in kern_proc_cwd_out()
5014 PWDDESC_XLOCK(pdp); in kern_proc_cwd_out()
5015 pwd = PWDDESC_XLOCKED_LOAD_PWD(pdp); in kern_proc_cwd_out()
5023 PWDDESC_XUNLOCK(pdp); in kern_proc_cwd_out()
5024 pddrop(pdp); in kern_proc_cwd_out()