Lines Matching refs:shrl
62 struct shrlocklist *shrl; in add_share() local
87 for (shrl = vp->v_shrlocks; shrl != NULL; shrl = shrl->next) { in add_share()
92 if ((shrl->shr->s_sysid == shr->s_sysid) && in add_share()
93 (shrl->shr->s_pid == shr->s_pid) && in add_share()
94 (shrl->shr->s_own_len == shr->s_own_len) && in add_share()
95 bcmp(shrl->shr->s_owner, shr->s_owner, in add_share()
105 if ((shrl->shr->s_deny & F_COMPAT) && in add_share()
107 ((shrl->next == NULL) || in add_share()
108 (shrl->shr->s_access & F_WRACC))) in add_share()
116 if ((shrl->shr->s_deny & F_COMPAT) && (shrl->next == NULL)) { in add_share()
126 (shrl->shr->s_access & F_WRACC)) { in add_share()
147 (shrl->shr->s_access == F_RDACC)) in add_share()
158 if ((shrl->shr->s_deny & F_COMPAT) && (shr->s_deny & F_COMPAT)) in add_share()
171 (shrl->shr->s_deny & F_RDDNY) || in add_share()
172 (shrl->shr->s_access & F_WRACC)) { in add_share()
180 if (shrl->next == NULL) { in add_share()
181 if ((shrl->shr->s_access == F_RDACC) && in add_share()
199 if ((shr->s_access & shrl->shr->s_deny) || in add_share()
200 (shr->s_deny & shrl->shr->s_access)) { in add_share()
206 shrl = kmem_alloc(sizeof (struct shrlocklist), KM_SLEEP); in add_share()
207 shrl->shr = kmem_alloc(sizeof (struct shrlock), KM_SLEEP); in add_share()
208 shrl->shr->s_access = shr->s_access; in add_share()
209 shrl->shr->s_deny = shr->s_deny; in add_share()
214 if (shrl->shr->s_deny & F_COMPAT) in add_share()
215 shrl->shr->s_deny = F_COMPAT; in add_share()
216 shrl->shr->s_sysid = shr->s_sysid; /* XXX ref cnt? */ in add_share()
217 shrl->shr->s_pid = shr->s_pid; in add_share()
218 shrl->shr->s_own_len = shr->s_own_len; in add_share()
219 shrl->shr->s_owner = kmem_alloc(shr->s_own_len, KM_SLEEP); in add_share()
220 bcopy(shr->s_owner, shrl->shr->s_owner, shr->s_own_len); in add_share()
221 shrl->next = vp->v_shrlocks; in add_share()
222 vp->v_shrlocks = shrl; in add_share()
294 struct shrlocklist *shrl; in del_share() local
314 shrl = *shrlp; in del_share()
315 *shrlp = shrl->next; in del_share()
317 if (shrl->shr->s_deny & F_MANDDNY) in del_share()
321 kmem_free(shrl->shr->s_owner, shrl->shr->s_own_len); in del_share()
322 kmem_free(shrl->shr, sizeof (struct shrlock)); in del_share()
323 kmem_free(shrl, sizeof (struct shrlocklist)); in del_share()
425 struct shrlocklist *shrl; in shr_has_remote_shares() local
429 shrl = vp->v_shrlocks; in shr_has_remote_shares()
430 while (shrl) { in shr_has_remote_shares()
431 if (is_match_for_has_remote(sysid, shrl->shr->s_sysid)) { in shr_has_remote_shares()
436 shrl = shrl->next; in shr_has_remote_shares()
453 struct shrlocklist *shrl; in print_shares() local
460 shrl = vp->v_shrlocks; in print_shares()
461 while (shrl) { in print_shares()
462 print_share(shrl->shr); in print_shares()
463 shrl = shrl->next; in print_shares()
554 struct shrlocklist *shrl; in nbl_share_conflict() local
570 for (shrl = vp->v_shrlocks; shrl != NULL; shrl = shrl->next) { in nbl_share_conflict()
571 if (!(shrl->shr->s_deny & F_MANDDNY)) in nbl_share_conflict()
583 if ((shrl->shr->s_deny & F_RDDNY) && in nbl_share_conflict()
584 (shrl->shr->s_sysid != sysid || in nbl_share_conflict()
585 shrl->shr->s_pid != pid)) in nbl_share_conflict()
589 if ((shrl->shr->s_deny & F_WRDNY) && in nbl_share_conflict()
590 (shrl->shr->s_sysid != sysid || in nbl_share_conflict()
591 shrl->shr->s_pid != pid)) in nbl_share_conflict()
595 if ((shrl->shr->s_deny & F_RWDNY) && in nbl_share_conflict()
596 (shrl->shr->s_sysid != sysid || in nbl_share_conflict()
597 shrl->shr->s_pid != pid)) in nbl_share_conflict()
601 if (shrl->shr->s_access & (F_RWACC|F_RMACC)) in nbl_share_conflict()
605 if (shrl->shr->s_access & (F_WRACC|F_RMACC)) in nbl_share_conflict()
608 else if ((shrl->shr->s_access & F_RDACC) && in nbl_share_conflict()
609 (shrl->shr->s_deny & F_RMDNY)) in nbl_share_conflict()
636 struct shrlocklist *shrl; in proc_has_nbmand_share_on_vp() local
642 for (shrl = vp->v_shrlocks; shrl != NULL; shrl = shrl->next) { in proc_has_nbmand_share_on_vp()
643 if (shrl->shr->s_sysid == 0 && in proc_has_nbmand_share_on_vp()
644 (shrl->shr->s_deny & F_MANDDNY) && in proc_has_nbmand_share_on_vp()
645 (shrl->shr->s_pid == pid)) { in proc_has_nbmand_share_on_vp()