Lines Matching refs:worker

834 	struct loop_worker *cur_worker, *worker = NULL;  in loop_queue_work()  local
849 worker = cur_worker; in loop_queue_work()
857 if (worker) in loop_queue_work()
860 worker = kzalloc(sizeof(struct loop_worker), GFP_NOWAIT | __GFP_NOWARN); in loop_queue_work()
865 if (!worker) { in loop_queue_work()
873 worker->blkcg_css = cmd->blkcg_css; in loop_queue_work()
874 css_get(worker->blkcg_css); in loop_queue_work()
875 INIT_WORK(&worker->work, loop_workfn); in loop_queue_work()
876 INIT_LIST_HEAD(&worker->cmd_list); in loop_queue_work()
877 INIT_LIST_HEAD(&worker->idle_list); in loop_queue_work()
878 worker->lo = lo; in loop_queue_work()
879 rb_link_node(&worker->rb_node, parent, node); in loop_queue_work()
880 rb_insert_color(&worker->rb_node, &lo->worker_tree); in loop_queue_work()
882 if (worker) { in loop_queue_work()
888 if (!list_empty(&worker->idle_list)) in loop_queue_work()
889 list_del_init(&worker->idle_list); in loop_queue_work()
890 work = &worker->work; in loop_queue_work()
891 cmd_list = &worker->cmd_list; in loop_queue_work()
908 struct loop_worker *pos, *worker; in loop_free_idle_workers() local
911 list_for_each_entry_safe(worker, pos, &lo->idle_worker_list, in loop_free_idle_workers()
914 time_is_after_jiffies(worker->last_ran_at + in loop_free_idle_workers()
917 list_del(&worker->idle_list); in loop_free_idle_workers()
918 rb_erase(&worker->rb_node, &lo->worker_tree); in loop_free_idle_workers()
919 css_put(worker->blkcg_css); in loop_free_idle_workers()
920 kfree(worker); in loop_free_idle_workers()
1936 static void loop_process_work(struct loop_worker *worker, in loop_process_work() argument
1961 if (worker && !work_pending(&worker->work)) { in loop_process_work()
1962 worker->last_ran_at = jiffies; in loop_process_work()
1963 list_add_tail(&worker->idle_list, &lo->idle_worker_list); in loop_process_work()
1972 struct loop_worker *worker = in loop_workfn() local
1974 loop_process_work(worker, &worker->cmd_list, worker->lo); in loop_workfn()