Lines Matching refs:ls
134 ls_ref(struct lockf_state *ls) in ls_ref() argument
138 ls->ls_refs++; in ls_ref()
142 ls_rele(struct lockf_state *ls) in ls_rele() argument
146 if (--ls->ls_refs > 0) in ls_rele()
149 KASSERT(TAILQ_EMPTY(&ls->ls_locks)); in ls_rele()
150 KASSERT(TAILQ_EMPTY(&ls->ls_pending)); in ls_rele()
152 *ls->ls_owner = NULL; in ls_rele()
153 pool_put(&lockf_state_pool, ls); in ls_rele()
219 struct lockf_state *ls; in lf_advlock() local
261 ls = *state; in lf_advlock()
266 if (ls == NULL && op != F_SETLK) { in lf_advlock()
271 if (ls == NULL) { in lf_advlock()
272 ls = pool_get(&lockf_state_pool, PR_WAITOK | PR_ZERO); in lf_advlock()
273 ls->ls_owner = state; in lf_advlock()
274 TAILQ_INIT(&ls->ls_locks); in lf_advlock()
275 TAILQ_INIT(&ls->ls_pending); in lf_advlock()
276 *state = ls; in lf_advlock()
278 ls_ref(ls); in lf_advlock()
282 ls_rele(ls); in lf_advlock()
291 lock->lf_state = ls; in lf_advlock()
726 struct lockf_state *ls; in lf_purgelocks() local
731 ls = *state; in lf_purgelocks()
732 if (ls == NULL) in lf_purgelocks()
735 ls_ref(ls); in lf_purgelocks()
738 TAILQ_FOREACH(lock, &ls->ls_locks, lf_entry) { in lf_purgelocks()
742 while (!TAILQ_EMPTY(&ls->ls_pending)) in lf_purgelocks()
743 rwsleep_nsec(ls, &lockf_lock, PLOCK, "lockfp", INFSLP); in lf_purgelocks()
749 while ((lock = TAILQ_FIRST(&ls->ls_locks))) { in lf_purgelocks()
750 TAILQ_REMOVE(&ls->ls_locks, lock, lf_entry); in lf_purgelocks()
755 KASSERT(ls->ls_refs == 1); in lf_purgelocks()
756 ls_rele(ls); in lf_purgelocks()