Lines Matching refs:nvp

375 			struct nlm_vhold *nvp;
379 nvp = TAILQ_FIRST(&hostp->nh_vholds_list);
380 while (nvp != NULL) {
383 new_nvp = TAILQ_NEXT(nvp, nv_link);
395 if (nvp->nv_refcnt == 0 &&
396 nvp->nv_vp->v_filocks == NULL &&
397 nvp->nv_vp->v_shrlocks == NULL) {
398 nlm_vhold_destroy(hostp, nvp);
401 nvp = new_nvp;
997 struct nlm_vhold *nvp, *new_nvp = NULL;
1000 nvp = nlm_vhold_find_locked(hostp, vp);
1001 if (nvp != NULL)
1013 nvp = nlm_vhold_find_locked(hostp, vp);
1014 if (nvp == NULL) {
1015 nvp = new_nvp;
1018 TAILQ_INIT(&nvp->nv_slreqs);
1019 nvp->nv_vp = vp;
1020 nvp->nv_refcnt = 1;
1021 VN_HOLD(nvp->nv_vp);
1024 (mod_hash_key_t)vp, (mod_hash_val_t)nvp) == 0);
1025 TAILQ_INSERT_TAIL(&hostp->nh_vholds_list, nvp, nv_link);
1033 return (nvp);
1037 * Drop a reference to vhold object nvp.
1040 nlm_vhold_release(struct nlm_host *hostp, struct nlm_vhold *nvp)
1042 if (nvp == NULL)
1046 ASSERT(nvp->nv_refcnt > 0);
1047 nvp->nv_refcnt--;
1056 if (nvp->nv_refcnt == 0 &&
1057 nvp->nv_vp->v_filocks == NULL &&
1058 nvp->nv_vp->v_shrlocks == NULL) {
1059 nlm_vhold_destroy(hostp, nvp);
1071 nlm_vhold_clean(struct nlm_vhold *nvp, int sysid)
1073 cleanlocks(nvp->nv_vp, IGN_PID, sysid);
1074 cleanshares_by_sysid(nvp->nv_vp, sysid);
1078 nlm_vhold_destroy(struct nlm_host *hostp, struct nlm_vhold *nvp)
1082 ASSERT(nvp->nv_refcnt == 0);
1083 ASSERT(TAILQ_EMPTY(&nvp->nv_slreqs));
1086 (mod_hash_key_t)nvp->nv_vp,
1087 (mod_hash_val_t)&nvp) == 0);
1089 TAILQ_REMOVE(&hostp->nh_vholds_list, nvp, nv_link);
1090 VN_RELE(nvp->nv_vp);
1091 nvp->nv_vp = NULL;
1093 kmem_cache_free(nlm_vhold_cache, nvp);
1105 nlm_vhold_busy(struct nlm_host *hostp, struct nlm_vhold *nvp)
1112 if (nvp->nv_refcnt > 0)
1115 vp = nvp->nv_vp;
1128 struct nlm_vhold *nvp = (struct nlm_vhold *)datap;
1130 bzero(nvp, sizeof (*nvp));
1138 struct nlm_vhold *nvp = (struct nlm_vhold *)datap;
1140 ASSERT(nvp->nv_refcnt == 0);
1141 ASSERT(TAILQ_EMPTY(&nvp->nv_slreqs));
1142 ASSERT(nvp->nv_vp == NULL);
1148 struct nlm_vhold *nvp = NULL;
1153 (mod_hash_val_t)&nvp);
1155 if (nvp != NULL)
1156 nvp->nv_refcnt++;
1158 return (nvp);
1255 struct nlm_vhold *nvp;
1264 TAILQ_FOREACH(nvp, &hostp->nh_vholds_list, nv_link) {
1267 while ((slr = TAILQ_FIRST(&nvp->nv_slreqs)) != NULL) {
1268 TAILQ_REMOVE(&nvp->nv_slreqs, slr, nsr_link);
1279 nvp->nv_refcnt++;
1282 nlm_vhold_clean(nvp, hostp->nh_sysid);
1285 nvp->nv_refcnt--;
1437 struct nlm_vhold *nvp;
1441 nvp = TAILQ_FIRST(&hostp->nh_vholds_list);
1442 while (nvp != NULL) {
1445 if (nlm_vhold_busy(hostp, nvp)) {
1446 nvp = TAILQ_NEXT(nvp, nv_link);
1450 nvp_tmp = TAILQ_NEXT(nvp, nv_link);
1451 nlm_vhold_destroy(hostp, nvp);
1452 nvp = nvp_tmp;
2084 nlm_slreq_register(struct nlm_host *hostp, struct nlm_vhold *nvp,
2091 slr = nlm_slreq_find_locked(hostp, nvp, flp);
2100 slr = nlm_slreq_find_locked(hostp, nvp, flp);
2106 TAILQ_INSERT_TAIL(&nvp->nv_slreqs, slr, nsr_link);
2125 nlm_slreq_unregister(struct nlm_host *hostp, struct nlm_vhold *nvp,
2131 slr = nlm_slreq_find_locked(hostp, nvp, flp);
2137 TAILQ_REMOVE(&nvp->nv_slreqs, slr, nsr_link);
2148 nlm_slreq_find_locked(struct nlm_host *hostp, struct nlm_vhold *nvp,
2154 TAILQ_FOREACH(slr, &nvp->nv_slreqs, nsr_link) {
2529 struct nlm_vhold *nvp;
2543 nvp = nlm_vhold_find_locked(hostp, vp);
2545 if (nvp != NULL) {
2575 struct nlm_vhold *nvp;
2586 TAILQ_FOREACH(nvp, &hostp->nh_vholds_list, nv_link) {
2589 nvp->nv_refcnt++;
2592 vp = nvp->nv_vp;
2603 nlm_vhold_clean(nvp, hostp->nh_sysid);
2607 nvp->nv_refcnt--;