Home | History | Annotate | Download | only in kern

Lines Matching refs:fg

413 aiosp_fg_teardown_locked(struct aiosp *sp, struct aiost_file_group *fg)
415 if (fg == NULL) {
419 RB_REMOVE(aiost_file_tree, sp->fg_root, fg);
420 mutex_destroy(&fg->mtx);
421 kmem_free(fg, sizeof(*fg));
428 aiosp_fg_teardown(struct aiosp *sp, struct aiost_file_group *fg)
430 if (fg == NULL) {
435 aiosp_fg_teardown_locked(sp, fg);
461 struct aiost_file_group *fg = NULL;
466 fg = RB_FIND(aiost_file_tree, sp->fg_root, &key);
468 if (fg == NULL) {
469 fg = kmem_zalloc(sizeof(*fg), KM_SLEEP);
470 fg->fp = fp;
471 fg->queue_size = 0;
472 mutex_init(&fg->mtx, MUTEX_DEFAULT, IPL_NONE);
473 TAILQ_INIT(&fg->queue);
477 kmem_free(fg, sizeof(*fg));
481 RB_INSERT(aiost_file_tree, sp->fg_root, fg);
482 fg->aiost = aiost;
484 aiost->fg = fg;
487 aiost = fg->aiost;
495 aiost->fg = NULL;
503 if (fg) {
504 mutex_enter(&fg->mtx);
505 TAILQ_INSERT_TAIL(&fg->queue, job, list);
506 fg->queue_size++;
507 mutex_exit(&fg->mtx);
774 aiost_process_fg(struct aiosp *sp, struct aiost_file_group *fg)
777 mutex_enter(&fg->mtx);
778 job = TAILQ_FIRST(&fg->queue);
780 TAILQ_REMOVE(&fg->queue, job, list);
781 fg->queue_size--;
783 mutex_exit(&fg->mtx);
833 if (st->fg) {
834 struct aiost_file_group *fg = st->fg;
835 st->fg = NULL;
838 aiost_process_fg(sp, fg);
841 aiosp_fg_teardown(sp, fg);
862 st->fg = NULL;
886 } else if (st->fg) {
887 struct aiost_file_group *fg = st->fg;
888 st->fg = NULL;
891 mutex_enter(&fg->mtx);
892 job = TAILQ_FIRST(&fg->queue);
894 TAILQ_REMOVE(&fg->queue, job, list);
895 fg->queue_size--;
897 mutex_exit(&fg->mtx);
905 aiosp_fg_teardown(sp, fg);
1146 } else if (st->fg) {
1147 mutex_enter(&st->fg->mtx);
1148 TAILQ_FOREACH(job, &st->fg->queue, list) {
1150 mutex_exit(&st->fg->mtx);
1155 mutex_exit(&st->fg->mtx);
1743 struct aiost_file_group find = { 0 }, *fg;
1777 fg = RB_FIND(aiost_file_tree, aiosp->fg_root, &find);
1778 if (fg) {
1779 have_active = fg->queue_size ? true : false;
2233 if (st->fg) {
2235 st->fg->fp, st->fg->queue_size);