Lines Matching refs:worker

839 	struct loop_worker *cur_worker, *worker = NULL;  in loop_queue_work()  local
854 worker = cur_worker; in loop_queue_work()
862 if (worker) in loop_queue_work()
865 worker = kzalloc(sizeof(struct loop_worker), GFP_NOWAIT | __GFP_NOWARN); in loop_queue_work()
870 if (!worker) { in loop_queue_work()
878 worker->blkcg_css = cmd->blkcg_css; in loop_queue_work()
879 css_get(worker->blkcg_css); in loop_queue_work()
880 INIT_WORK(&worker->work, loop_workfn); in loop_queue_work()
881 INIT_LIST_HEAD(&worker->cmd_list); in loop_queue_work()
882 INIT_LIST_HEAD(&worker->idle_list); in loop_queue_work()
883 worker->lo = lo; in loop_queue_work()
884 rb_link_node(&worker->rb_node, parent, node); in loop_queue_work()
885 rb_insert_color(&worker->rb_node, &lo->worker_tree); in loop_queue_work()
887 if (worker) { in loop_queue_work()
893 if (!list_empty(&worker->idle_list)) in loop_queue_work()
894 list_del_init(&worker->idle_list); in loop_queue_work()
895 work = &worker->work; in loop_queue_work()
896 cmd_list = &worker->cmd_list; in loop_queue_work()
913 struct loop_worker *pos, *worker; in loop_free_idle_workers() local
916 list_for_each_entry_safe(worker, pos, &lo->idle_worker_list, in loop_free_idle_workers()
919 time_is_after_jiffies(worker->last_ran_at + in loop_free_idle_workers()
922 list_del(&worker->idle_list); in loop_free_idle_workers()
923 rb_erase(&worker->rb_node, &lo->worker_tree); in loop_free_idle_workers()
924 css_put(worker->blkcg_css); in loop_free_idle_workers()
925 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()