Lines Matching refs:rp
8175 vnode_resolve_t rp;
8190 rp = vp->v_resolve;
8191 lck_mtx_lock(&rp->vr_lock);
8193 if (seq > rp->vr_lastseq) {
8195 rp->vr_flags |= VNT_RESOLVED;
8197 rp->vr_flags &= ~VNT_RESOLVED;
8199 rp->vr_lastseq = seq;
8202 lck_mtx_unlock(&rp->vr_lock);
8208 vnode_resolver_attach(vnode_t vp, vnode_resolve_t rp, boolean_t ref)
8217 vp->v_resolve = rp;
8240 vnode_resolve_t rp;
8249 MALLOC(rp, vnode_resolve_t, sizeof(*rp), M_TEMP, M_WAITOK);
8250 if (rp == NULL)
8253 lck_mtx_init(&rp->vr_lock, trigger_vnode_lck_grp, trigger_vnode_lck_attr);
8255 rp->vr_resolve_func = tinfo->vnt_resolve_func;
8256 rp->vr_unresolve_func = tinfo->vnt_unresolve_func;
8257 rp->vr_rearm_func = tinfo->vnt_rearm_func;
8258 rp->vr_reclaim_func = tinfo->vnt_reclaim_func;
8259 rp->vr_data = tinfo->vnt_data;
8260 rp->vr_lastseq = 0;
8261 rp->vr_flags = tinfo->vnt_flags & VNT_VALID_MASK;
8263 rp->vr_flags |= VNT_EXTERNAL;
8266 result = vnode_resolver_attach(vp, rp, external);
8278 FREE(rp, M_TEMP);
8283 vnode_resolver_release(vnode_resolve_t rp)
8288 if (rp->vr_data && rp->vr_reclaim_func) {
8289 rp->vr_reclaim_func(NULLVP, rp->vr_data);
8292 lck_mtx_destroy(&rp->vr_lock, trigger_vnode_lck_grp);
8293 FREE(rp, M_TEMP);
8301 vnode_resolve_t rp;
8307 rp = vp->v_resolve;
8311 if ((rp->vr_flags & VNT_EXTERNAL) != 0) {
8315 vnode_resolver_release(rp);
8345 vnode_resolve_t rp;
8356 rp = vp->v_resolve;
8357 lck_mtx_lock(&rp->vr_lock);
8362 if (rp->vr_flags & VNT_VFS_UNMOUNTED) {
8363 lck_mtx_unlock(&rp->vr_lock);
8368 if ((rp->vr_flags & VNT_RESOLVED) == 0) {
8369 lck_mtx_unlock(&rp->vr_lock);
8373 lck_mtx_unlock(&rp->vr_lock);
8375 result = rp->vr_rearm_func(vp, 0, rp->vr_data, ctx);
8379 lck_mtx_lock(&rp->vr_lock);
8380 if (seq > rp->vr_lastseq) {
8382 rp->vr_flags &= ~VNT_RESOLVED;
8383 rp->vr_lastseq = seq;
8385 lck_mtx_unlock(&rp->vr_lock);
8392 vnode_resolve_t rp;
8405 rp = vp->v_resolve;
8406 lck_mtx_lock(&rp->vr_lock);
8409 if (rp->vr_flags & VNT_RESOLVED) {
8410 lck_mtx_unlock(&rp->vr_lock);
8414 lck_mtx_unlock(&rp->vr_lock);
8429 result = rp->vr_resolve_func(vp, &ndp->ni_cnd, op, 0, rp->vr_data, ctx);
8433 lck_mtx_lock(&rp->vr_lock);
8434 if (seq > rp->vr_lastseq) {
8436 rp->vr_flags |= VNT_RESOLVED;
8437 rp->vr_lastseq = seq;
8439 lck_mtx_unlock(&rp->vr_lock);
8448 vnode_resolve_t rp;
8457 rp = vp->v_resolve;
8458 lck_mtx_lock(&rp->vr_lock);
8461 if ((rp->vr_flags & VNT_RESOLVED) == 0) {
8463 lck_mtx_unlock(&rp->vr_lock);
8467 rp->vr_flags |= VNT_VFS_UNMOUNTED;
8469 lck_mtx_unlock(&rp->vr_lock);
8479 result = rp->vr_unresolve_func(vp, flags, rp->vr_data, ctx);
8483 lck_mtx_lock(&rp->vr_lock);
8484 if (seq > rp->vr_lastseq) {
8486 rp->vr_flags &= ~VNT_RESOLVED;
8487 rp->vr_lastseq = seq;
8489 rp->vr_flags &= ~VNT_VFS_UNMOUNTED;
8490 lck_mtx_unlock(&rp->vr_lock);