Lines Matching full:jd
84 struct jaildesc *jd; in jaildesc_find() local
95 jd = fp->f_data; in jaildesc_find()
96 JAILDESC_LOCK(jd); in jaildesc_find()
97 pr = jd->jd_prison; in jaildesc_find()
100 JAILDESC_UNLOCK(jd); in jaildesc_find()
107 JAILDESC_UNLOCK(jd); in jaildesc_find()
124 struct jaildesc *jd; in jaildesc_alloc() local
132 jd = malloc(sizeof(*jd), M_JAILDESC, M_WAITOK | M_ZERO); in jaildesc_alloc()
135 free(jd, M_JAILDESC); in jaildesc_alloc()
139 FREAD | FWRITE : FREAD, DTYPE_JAILDESC, jd, &jaildesc_ops); in jaildesc_alloc()
140 JAILDESC_LOCK_INIT(jd); in jaildesc_alloc()
141 knlist_init_mtx(&jd->jd_selinfo.si_note, &jd->jd_lock); in jaildesc_alloc()
143 jd->jd_flags |= JDF_OWNING; in jaildesc_alloc()
154 struct jaildesc *jd; in jaildesc_set_prison() local
157 jd = fp->f_data; in jaildesc_set_prison()
158 JAILDESC_LOCK(jd); in jaildesc_set_prison()
159 jd->jd_prison = pr; in jaildesc_set_prison()
160 LIST_INSERT_HEAD(&pr->pr_descs, jd, jd_list); in jaildesc_set_prison()
162 JAILDESC_UNLOCK(jd); in jaildesc_set_prison()
171 struct jaildesc *jd; in jaildesc_prison_cleanup() local
174 while ((jd = LIST_FIRST(&pr->pr_descs))) { in jaildesc_prison_cleanup()
175 JAILDESC_LOCK(jd); in jaildesc_prison_cleanup()
176 LIST_REMOVE(jd, jd_list); in jaildesc_prison_cleanup()
177 jd->jd_prison = NULL; in jaildesc_prison_cleanup()
178 JAILDESC_UNLOCK(jd); in jaildesc_prison_cleanup()
189 struct jaildesc *jd; in jaildesc_knote() local
196 LIST_FOREACH(jd, &pr->pr_descs, jd_list) { in jaildesc_knote()
197 JAILDESC_LOCK(jd); in jaildesc_knote()
199 jd->jd_flags |= JDF_REMOVED; in jaildesc_knote()
200 if (jd->jd_flags & JDF_SELECTED) { in jaildesc_knote()
201 jd->jd_flags &= ~JDF_SELECTED; in jaildesc_knote()
202 selwakeup(&jd->jd_selinfo); in jaildesc_knote()
205 KNOTE_LOCKED(&jd->jd_selinfo.si_note, hint); in jaildesc_knote()
206 JAILDESC_UNLOCK(jd); in jaildesc_knote()
216 struct jaildesc *jd; in jaildesc_close() local
219 jd = fp->f_data; in jaildesc_close()
221 if (jd != NULL) { in jaildesc_close()
222 JAILDESC_LOCK(jd); in jaildesc_close()
223 pr = jd->jd_prison; in jaildesc_close()
234 JAILDESC_UNLOCK(jd); in jaildesc_close()
235 if (jd->jd_flags & JDF_OWNING) { in jaildesc_close()
238 if (jd->jd_prison != NULL) { in jaildesc_close()
244 LIST_REMOVE(jd, jd_list); in jaildesc_close()
252 if (jd->jd_prison != NULL) { in jaildesc_close()
253 LIST_REMOVE(jd, jd_list); in jaildesc_close()
260 knlist_destroy(&jd->jd_selinfo.si_note); in jaildesc_close()
261 JAILDESC_LOCK_DESTROY(jd); in jaildesc_close()
262 free(jd, M_JAILDESC); in jaildesc_close()
271 struct jaildesc *jd; in jaildesc_poll() local
275 jd = fp->f_data; in jaildesc_poll()
276 JAILDESC_LOCK(jd); in jaildesc_poll()
277 if (jd->jd_flags & JDF_REMOVED) in jaildesc_poll()
280 selrecord(td, &jd->jd_selinfo); in jaildesc_poll()
281 jd->jd_flags |= JDF_SELECTED; in jaildesc_poll()
283 JAILDESC_UNLOCK(jd); in jaildesc_poll()
290 struct jaildesc *jd; in jaildesc_kqops_detach() local
292 jd = kn->kn_fp->f_data; in jaildesc_kqops_detach()
293 knlist_remove(&jd->jd_selinfo.si_note, kn, 0); in jaildesc_kqops_detach()
299 struct jaildesc *jd; in jaildesc_kqops_event() local
302 jd = kn->kn_fp->f_data; in jaildesc_kqops_event()
309 event = jd->jd_flags & JDF_REMOVED ? NOTE_JAIL_REMOVE : 0; in jaildesc_kqops_event()
353 struct jaildesc *jd; in jaildesc_kqfilter() local
355 jd = fp->f_data; in jaildesc_kqfilter()
360 knlist_add(&jd->jd_selinfo.si_note, kn, 0); in jaildesc_kqfilter()
370 struct jaildesc *jd; in jaildesc_stat() local
373 jd = fp->f_data; in jaildesc_stat()
374 JAILDESC_LOCK(jd); in jaildesc_stat()
375 if (jd->jd_prison != NULL) { in jaildesc_stat()
376 sb->st_ino = jd->jd_prison->pr_id; in jaildesc_stat()
380 JAILDESC_UNLOCK(jd); in jaildesc_stat()
388 struct jaildesc *jd; in jaildesc_fill_kinfo() local
390 jd = fp->f_data; in jaildesc_fill_kinfo()
392 kif->kf_un.kf_jail.kf_jid = jd->jd_prison ? jd->jd_prison->pr_id : 0; in jaildesc_fill_kinfo()