Lines Matching defs:pdp
2242 * If pdp is not NULL and keeplock is true, return with it (exclusively) locked.
2245 pdinit(struct pwddesc *pdp, bool keeplock)
2256 if (pdp == NULL) {
2262 PWDDESC_XLOCK(pdp);
2263 newpwd = pwd_hold_pwddesc(pdp);
2266 PWDDESC_XUNLOCK(pdp);
2300 struct pwddesc *pdp;
2303 pdp = atomic_load_ptr(&p->p_pd);
2304 if (pdp != NULL)
2305 refcount_acquire(&pdp->pd_refcount);
2306 return (pdp);
2323 pddrop(struct pwddesc *pdp)
2327 if (refcount_release_if_not_last(&pdp->pd_refcount))
2330 PWDDESC_XLOCK(pdp);
2331 if (refcount_release(&pdp->pd_refcount) == 0) {
2332 PWDDESC_XUNLOCK(pdp);
2335 pwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
2336 pwd_set(pdp, NULL);
2337 PWDDESC_XUNLOCK(pdp);
2340 PWDDESC_LOCK_DESTROY(pdp);
2341 free(pdp, M_PWDDESC);
2359 pdshare(struct pwddesc *pdp)
2361 refcount_acquire(&pdp->pd_refcount);
2362 return (pdp);
2388 struct pwddesc *pdp;
2396 pdp = pdcopy(p->p_pd);
2398 p->p_pd = pdp;
2447 pdcopy(struct pwddesc *pdp)
2451 MPASS(pdp != NULL);
2453 newpdp = pdinit(pdp, true);
2454 newpdp->pd_cmask = pdp->pd_cmask;
2455 PWDDESC_XUNLOCK(pdp);
2615 struct pwddesc *pdp;
2618 pdp = p->p_pd;
2619 MPASS(pdp != NULL);
2628 pddrop(pdp);
3893 pwd_hold_pwddesc(struct pwddesc *pdp)
3897 PWDDESC_ASSERT_XLOCKED(pdp);
3898 pwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
3918 struct pwddesc *pdp;
3921 pdp = td->td_proc->p_pd;
3924 pwd = vfs_smr_entered_load(&pdp->pd_pwd);
3930 PWDDESC_XLOCK(pdp);
3931 pwd = pwd_hold_pwddesc(pdp);
3933 PWDDESC_XUNLOCK(pdp);
3940 struct pwddesc *pdp;
3945 pdp = pdhold(p);
3946 MPASS(pdp != NULL);
3949 PWDDESC_XLOCK(pdp);
3950 pwd = pwd_hold_pwddesc(pdp);
3952 PWDDESC_XUNLOCK(pdp);
3953 pddrop(pdp);
3993 struct pwddesc *pdp;
3999 pdp = td->td_proc->p_pd;
4002 PWDDESC_XLOCK(pdp);
4003 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4010 PWDDESC_XUNLOCK(pdp);
4027 pwd_set(pdp, newpwd);
4028 PWDDESC_XUNLOCK(pdp);
4036 struct pwddesc *pdp;
4042 pdp = td->td_proc->p_pd;
4043 PWDDESC_XLOCK(pdp);
4044 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4047 pwd_set(pdp, newpwd);
4048 PWDDESC_XUNLOCK(pdp);
4058 struct pwddesc *pdp;
4062 pdp = td->td_proc->p_pd;
4063 PWDDESC_XLOCK(pdp);
4064 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4081 pwd_set(pdp, newpwd);
4082 PWDDESC_XUNLOCK(pdp);
4092 struct pwddesc *pdp;
4098 pdp = td->td_proc->p_pd;
4101 PWDDESC_XLOCK(pdp);
4102 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4106 PWDDESC_XUNLOCK(pdp);
4122 pwd_set(pdp, newpwd);
4123 PWDDESC_XUNLOCK(pdp);
4131 struct pwddesc *pdp;
4134 pdp = curproc->p_pd;
4135 PWDDESC_XLOCK(pdp);
4136 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4139 PWDDESC_XUNLOCK(pdp);
4142 PWDDESC_XUNLOCK(pdp);
4145 PWDDESC_XLOCK(pdp);
4146 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4160 pwd_set(pdp, newpwd);
4161 PWDDESC_XUNLOCK(pdp);
4168 struct pwddesc *pdp;
4171 pdp = curproc->p_pd;
4174 PWDDESC_XLOCK(pdp);
4175 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4183 pwd_set(pdp, newpwd);
4184 PWDDESC_XUNLOCK(pdp);
4195 struct pwddesc *pdp;
4208 pdp = pdhold(p);
4210 if (pdp == NULL)
4212 PWDDESC_XLOCK(pdp);
4213 oldpwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4219 PWDDESC_XUNLOCK(pdp);
4220 pddrop(pdp);
4240 pwd_set(pdp, newpwd);
4241 PWDDESC_XUNLOCK(pdp);
4243 pddrop(pdp);
4582 struct pwddesc *pdp;
4629 if (efbuf->pdp != NULL)
4630 PWDDESC_XUNLOCK(efbuf->pdp);
4633 if (efbuf->pdp != NULL)
4634 PWDDESC_XLOCK(efbuf->pdp);
4649 struct pwddesc *pdp;
4672 pdp = pdhold(p);
4677 efbuf->pdp = NULL;
4692 if (error != 0 || pdp == NULL || fdp == NULL)
4695 efbuf->pdp = pdp;
4696 PWDDESC_XLOCK(pdp);
4697 pwd = pwd_hold_pwddesc(pdp);
4718 PWDDESC_XUNLOCK(pdp);
4747 if (pdp != NULL)
4748 pddrop(pdp);
4824 struct kinfo_ofile *okif, struct pwddesc *pdp, struct sysctl_req *req)
4829 PWDDESC_XUNLOCK(pdp);
4833 PWDDESC_XLOCK(pdp);
4846 struct pwddesc *pdp;
4863 pdp = pdhold(p);
4865 if (fdp == NULL || pdp == NULL) {
4872 PWDDESC_XLOCK(pdp);
4873 pwd = pwd_hold_pwddesc(pdp);
4877 okif, pdp, req);
4880 okif, pdp, req);
4883 okif, pdp, req);
4885 PWDDESC_XUNLOCK(pdp);
4904 pddrop(pdp);
4956 struct pwddesc *pdp;
4964 pdp = pdhold(p);
4966 if (pdp == NULL)
4971 efbuf->pdp = pdp;
4976 PWDDESC_XLOCK(pdp);
4977 pwd = PWDDESC_XLOCKED_LOAD_PWD(pdp);
4985 PWDDESC_XUNLOCK(pdp);
4986 pddrop(pdp);