Lines Matching refs:worker
789 struct loop_worker *cur_worker, *worker = NULL; in loop_queue_work() local
804 worker = cur_worker; in loop_queue_work()
812 if (worker) in loop_queue_work()
815 worker = kzalloc(sizeof(struct loop_worker), GFP_NOWAIT | __GFP_NOWARN); in loop_queue_work()
820 if (!worker) { in loop_queue_work()
828 worker->blkcg_css = cmd->blkcg_css; in loop_queue_work()
829 css_get(worker->blkcg_css); in loop_queue_work()
830 INIT_WORK(&worker->work, loop_workfn); in loop_queue_work()
831 INIT_LIST_HEAD(&worker->cmd_list); in loop_queue_work()
832 INIT_LIST_HEAD(&worker->idle_list); in loop_queue_work()
833 worker->lo = lo; in loop_queue_work()
834 rb_link_node(&worker->rb_node, parent, node); in loop_queue_work()
835 rb_insert_color(&worker->rb_node, &lo->worker_tree); in loop_queue_work()
837 if (worker) { in loop_queue_work()
843 if (!list_empty(&worker->idle_list)) in loop_queue_work()
844 list_del_init(&worker->idle_list); in loop_queue_work()
845 work = &worker->work; in loop_queue_work()
846 cmd_list = &worker->cmd_list; in loop_queue_work()
863 struct loop_worker *pos, *worker; in loop_free_idle_workers() local
866 list_for_each_entry_safe(worker, pos, &lo->idle_worker_list, in loop_free_idle_workers()
869 time_is_after_jiffies(worker->last_ran_at + in loop_free_idle_workers()
872 list_del(&worker->idle_list); in loop_free_idle_workers()
873 rb_erase(&worker->rb_node, &lo->worker_tree); in loop_free_idle_workers()
874 css_put(worker->blkcg_css); in loop_free_idle_workers()
875 kfree(worker); in loop_free_idle_workers()
1931 static void loop_process_work(struct loop_worker *worker, in loop_process_work() argument
1956 if (worker && !work_pending(&worker->work)) { in loop_process_work()
1957 worker->last_ran_at = jiffies; in loop_process_work()
1958 list_add_tail(&worker->idle_list, &lo->idle_worker_list); in loop_process_work()
1967 struct loop_worker *worker = in loop_workfn() local
1969 loop_process_work(worker, &worker->cmd_list, worker->lo); in loop_workfn()