| /linux/fs/smb/server/ |
| H A D | ksmbd_work.c | 20 static int ksmbd_reserve_iov(struct ksmbd_work *work, int need_iov_cnt) in ksmbd_reserve_iov() argument 23 int new_alloc_cnt = work->iov_alloc_cnt; in ksmbd_reserve_iov() 25 if (work->iov_alloc_cnt >= work->iov_cnt + need_iov_cnt) in ksmbd_reserve_iov() 30 } while (new_alloc_cnt < work->iov_cnt + need_iov_cnt); in ksmbd_reserve_iov() 32 if (work->iov == work->iov_inline) { in ksmbd_reserve_iov() 37 memcpy(new, work->iov_inline, sizeof(work->iov_inline)); in ksmbd_reserve_iov() 39 new = krealloc(work->iov, sizeof(*new) * new_alloc_cnt, in ksmbd_reserve_iov() 45 work->iov = new; in ksmbd_reserve_iov() 46 work->iov_alloc_cnt = new_alloc_cnt; in ksmbd_reserve_iov() 52 struct ksmbd_work *work = kmem_cache_zalloc(work_cache, KSMBD_DEFAULT_GFP); in ksmbd_alloc_work_struct() local [all …]
|
| H A D | server.c | 97 static inline int check_conn_state(struct ksmbd_work *work) in check_conn_state() argument 101 if (ksmbd_conn_exiting(work->conn) || in check_conn_state() 102 ksmbd_conn_need_reconnect(work->conn)) { in check_conn_state() 103 rsp_hdr = smb_get_msg(work->response_buf); in check_conn_state() 113 static int __process_request(struct ksmbd_work *work, struct ksmbd_conn *conn, in __process_request() argument 121 if (check_conn_state(work)) in __process_request() 124 if (ksmbd_verify_smb_message(work)) { in __process_request() 125 conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER); in __process_request() 129 command = conn->ops->get_cmd_val(work); in __process_request() 134 conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER); in __process_request() [all …]
|
| H A D | smb2pdu.h | 394 bool is_smb2_neg_cmd(struct ksmbd_work *work); 395 bool is_smb2_rsp(struct ksmbd_work *work); 397 u16 get_smb2_cmd_val(struct ksmbd_work *work); 398 void set_smb2_rsp_status(struct ksmbd_work *work, __le32 err); 399 int init_smb2_rsp_hdr(struct ksmbd_work *work); 400 int smb2_allocate_rsp_buf(struct ksmbd_work *work); 401 bool is_chained_smb2_message(struct ksmbd_work *work); 402 int init_smb2_neg_rsp(struct ksmbd_work *work); 403 void smb2_set_err_rsp(struct ksmbd_work *work); 404 int smb2_check_user_session(struct ksmbd_work *work); [all …]
|
| H A D | smb2pdu.c | 50 static void __wbuf(struct ksmbd_work *work, void **req, void **rsp) in __wbuf() argument 52 if (work->next_smb2_rcv_hdr_off) { in __wbuf() 53 *req = ksmbd_req_buf_next(work); in __wbuf() 54 *rsp = ksmbd_resp_buf_next(work); in __wbuf() 56 *req = smb_get_msg(work->request_buf); in __wbuf() 57 *rsp = smb_get_msg(work->response_buf); in __wbuf() 139 int smb2_get_ksmbd_tcon(struct ksmbd_work *work) in smb2_get_ksmbd_tcon() argument 141 struct smb2_hdr *req_hdr = ksmbd_req_buf_next(work); in smb2_get_ksmbd_tcon() 152 if (xa_empty(&work->sess->tree_conns)) { in smb2_get_ksmbd_tcon() 163 if (work->next_smb2_rcv_hdr_off) { in smb2_get_ksmbd_tcon() [all …]
|
| H A D | ksmbd_work.h | 113 struct work_struct work; member 127 static inline void *ksmbd_resp_buf_next(struct ksmbd_work *work) in ksmbd_resp_buf_next() argument 129 return work->response_buf + work->next_smb2_rsp_hdr_off + 4; in ksmbd_resp_buf_next() 136 static inline void *ksmbd_resp_buf_curr(struct ksmbd_work *work) in ksmbd_resp_buf_curr() argument 138 return work->response_buf + work->curr_smb2_rsp_hdr_off + 4; in ksmbd_resp_buf_curr() 145 static inline void *ksmbd_req_buf_next(struct ksmbd_work *work) in ksmbd_req_buf_next() argument 147 return work->request_buf + work->next_smb2_rcv_hdr_off + 4; in ksmbd_req_buf_next() 151 void ksmbd_free_work_struct(struct ksmbd_work *work); 158 bool ksmbd_queue_work(struct ksmbd_work *work); 159 int ksmbd_iov_pin_rsp_read(struct ksmbd_work *work, void *ib, int len, [all …]
|
| /linux/virt/kvm/ |
| H A D | async_pf.c | 45 static void async_pf_execute(struct work_struct *work) in async_pf_execute() argument 48 container_of(work, struct kvm_async_pf, work); in async_pf_execute() 63 * work item is fully processed. in async_pf_execute() 99 static void kvm_flush_and_free_async_pf_work(struct kvm_async_pf *work) in kvm_flush_and_free_async_pf_work() argument 102 * The async #PF is "done", but KVM must wait for the work item itself, in kvm_flush_and_free_async_pf_work() 105 * after the last call to module_put(). Note, flushing the work item in kvm_flush_and_free_async_pf_work() 111 * need to be flushed (but sanity check that the work wasn't queued). in kvm_flush_and_free_async_pf_work() 113 if (work->wakeup_all) in kvm_flush_and_free_async_pf_work() 114 WARN_ON_ONCE(work in kvm_flush_and_free_async_pf_work() 124 struct kvm_async_pf *work = kvm_clear_async_pf_completion_queue() local 139 struct kvm_async_pf *work = kvm_clear_async_pf_completion_queue() local 155 struct kvm_async_pf *work; kvm_check_async_pf_completion() local 182 struct kvm_async_pf *work; kvm_setup_async_pf() local 218 struct kvm_async_pf *work; kvm_async_pf_wakeup_all() local [all...] |
| /linux/drivers/gpu/drm/ |
| H A D | drm_flip_work.c | 47 static void drm_flip_work_queue_task(struct drm_flip_work *work, struct drm_flip_task *task) in drm_flip_work_queue_task() argument 51 spin_lock_irqsave(&work->lock, flags); in drm_flip_work_queue_task() 52 list_add_tail(&task->node, &work->queued); in drm_flip_work_queue_task() 53 spin_unlock_irqrestore(&work->lock, flags); in drm_flip_work_queue_task() 64 void drm_flip_work_queue(struct drm_flip_work *work, void *val) in drm_flip_work_queue() argument 71 drm_flip_work_queue_task(work, task); in drm_flip_work_queue() 73 DRM_ERROR("%s could not allocate task!\n", work->name); in drm_flip_work_queue() 74 work->func(work, val); in drm_flip_work_queue() 89 void drm_flip_work_commit(struct drm_flip_work *work, in drm_flip_work_commit() argument 94 spin_lock_irqsave(&work->lock, flags); in drm_flip_work_commit() [all …]
|
| /linux/include/trace/events/ |
| H A D | workqueue.h | 14 * workqueue_queue_work - called when a work gets queued 17 * @work: pointer to struct work_struct 19 * This event occurs when a work is queued immediately or once a 20 * delayed work is actually queued on a workqueue (ie: once the delay 26 struct work_struct *work), 28 TP_ARGS(req_cpu, pwq, work), 31 __field( void *, work ) 39 __entry->work = work; 40 __entry->function = work [all...] |
| /linux/kernel/ |
| H A D | irq_work.c | 57 static bool irq_work_claim(struct irq_work *work) in irq_work_claim() argument 61 oflags = atomic_fetch_or(IRQ_WORK_CLAIMED | CSD_TYPE_IRQ_WORK, &work->node.a_flags); in irq_work_claim() 79 static __always_inline void irq_work_raise(struct irq_work *work) in irq_work_raise() argument 82 trace_call__ipi_send_cpu(smp_processor_id(), _RET_IP_, work->func); in irq_work_raise() 88 static void __irq_work_queue_local(struct irq_work *work) in __irq_work_queue_local() argument 95 work_flags = atomic_read(&work->node.a_flags); in __irq_work_queue_local() 107 if (!llist_add(&work->node.llist, list)) in __irq_work_queue_local() 112 irq_work_raise(work); in __irq_work_queue_local() 116 bool irq_work_queue(struct irq_work *work) in irq_work_queue() argument 119 if (!irq_work_claim(work)) in irq_work_queue() [all …]
|
| H A D | kthread.c | 988 struct kthread_work *work; in kthread_worker_fn() local 1011 work = NULL; in kthread_worker_fn() 1014 work = list_first_entry(&worker->work_list, in kthread_worker_fn() 1016 list_del_init(&work->node); in kthread_worker_fn() 1018 worker->current_work = work; in kthread_worker_fn() 1021 if (work) { in kthread_worker_fn() 1022 kthread_work_func_t func = work->func; in kthread_worker_fn() 1024 trace_sched_kthread_work_execute_start(work); in kthread_worker_fn() 1025 work->func(work); in kthread_worker_fn() 1030 trace_sched_kthread_work_execute_end(work, func); in kthread_worker_fn() [all …]
|
| /linux/include/linux/ |
| H A D | completion.h | 35 #define COMPLETION_INITIALIZER(work) \ argument 36 { 0, __SWAIT_QUEUE_HEAD_INITIALIZER((work).wait) } 38 #define COMPLETION_INITIALIZER_ONSTACK_MAP(work, map) \ argument 39 (*({ init_completion_map(&(work), &(map)); &(work); })) 41 #define COMPLETION_INITIALIZER_ONSTACK(work) \ argument 42 (*({ init_completion(&work); &work; })) 52 #define DECLARE_COMPLETION(work) \ argument 53 struct completion work = COMPLETION_INITIALIZER(work) 68 # define DECLARE_COMPLETION_ONSTACK(work) \ argument 69 struct completion work = COMPLETION_INITIALIZER_ONSTACK(work) [all …]
|
| H A D | entry-common.h | 65 static __always_inline long syscall_trace_enter(struct pt_regs *regs, unsigned long work, in syscall_trace_enter() argument 73 if (work & SYSCALL_WORK_SYSCALL_USER_DISPATCH) { in syscall_trace_enter() 83 if (work & SYSCALL_WORK_SYSCALL_RSEQ_SLICE) in syscall_trace_enter() 87 if (work & (SYSCALL_WORK_SYSCALL_TRACE | SYSCALL_WORK_SYSCALL_EMU)) { in syscall_trace_enter() 89 (work & SYSCALL_WORK_SYSCALL_EMU)) in syscall_trace_enter() 93 work = READ_ONCE(current_thread_info()->syscall_work); in syscall_trace_enter() 97 if (work & SYSCALL_WORK_SECCOMP) { in syscall_trace_enter() 102 if (unlikely(work & SYSCALL_WORK_SYSCALL_TRACEPOINT)) in syscall_trace_enter() 142 unsigned long work = READ_ONCE(current_thread_info()->syscall_work); in syscall_enter_from_user_mode_work() local 144 if (!(work & SYSCALL_WORK_ENTER)) in syscall_enter_from_user_mode_work() [all …]
|
| H A D | workqueue.h | 24 #define work_data_bits(work) ((unsigned long *)(&(work)->data)) argument 115 struct work_struct work; member 124 struct work_struct work; member 213 static inline struct delayed_work *to_delayed_work(struct work_struct *work) in to_delayed_work() argument 215 return container_of(work, struct delayed_work, work); in to_delayed_work() 218 static inline struct rcu_work *to_rcu_work(struct work_struct *work) in to_rcu_work() argument 220 return container_of(work, struct rcu_work, work); in to_rcu_work() 224 struct work_struct work; member 247 .work = __WORK_INITIALIZER((n).work, (f)), \ 262 extern void __init_work(struct work_struct *work, int onstack); [all …]
|
| H A D | jump_label_ratelimit.h | 12 struct delayed_work work; member 18 struct delayed_work work; member 24 struct delayed_work work; member 28 __static_key_slow_dec_deferred(&(x)->key, &(x)->work, (x)->timeout) 30 __static_key_slow_dec_deferred(&(x)->key.key, &(x)->work, (x)->timeout) 33 __static_key_deferred_flush((x), &(x)->work) 37 struct delayed_work *work, 39 extern void __static_key_deferred_flush(void *key, struct delayed_work *work); 43 extern void jump_label_update_timeout(struct work_struct *work); 49 .work = __DELAYED_WORK_INITIALIZER((name).work, \ [all …]
|
| H A D | kthread.h | 137 typedef void (*kthread_work_func_t)(struct kthread_work *work); 162 struct kthread_work work; member 166 #define KTHREAD_WORK_INIT(work, fn) { \ argument 167 .node = LIST_HEAD_INIT((work).node), \ 172 .work = KTHREAD_WORK_INIT((dwork).work, (fn)), \ 177 #define DEFINE_KTHREAD_WORK(work, fn) \ argument 178 struct kthread_work work = KTHREAD_WORK_INIT(work, fn) 193 #define kthread_init_work(work, fn) \ argument 195 memset((work), 0, sizeof(struct kthread_work)); \ 196 INIT_LIST_HEAD(&(work)->node); \ [all …]
|
| /linux/fs/btrfs/ |
| H A D | async-thread.c | 55 struct btrfs_fs_info * __pure btrfs_work_owner(const struct btrfs_work *work) in btrfs_work_owner() argument 57 return work->wq->fs_info; in btrfs_work_owner() 213 struct btrfs_work *work; in run_ordered_work() local 222 work = list_first_entry(list, struct btrfs_work, ordered_list); in run_ordered_work() 223 if (!test_bit(WORK_DONE_BIT, &work->flags)) in run_ordered_work() 239 if (test_and_set_bit(WORK_ORDER_DONE_BIT, &work->flags)) in run_ordered_work() 241 trace_btrfs_ordered_sched(work); in run_ordered_work() 243 work->ordered_func(work, false); in run_ordered_work() 247 list_del(&work->ordered_list); in run_ordered_work() 250 if (work == self) { in run_ordered_work() [all …]
|
| /linux/tools/perf/ |
| H A D | builtin-kwork.c | 316 struct kwork_work *work; in work_search() 320 work = container_of(node, struct kwork_work, node); in work_search() 321 cmp = work_cmp(sort_list, key, work); in work_search() 327 if (work->name == NULL && key->name != NULL) in work_search() 328 work->name = strdup(key->name); in work_search() 329 return work; in work_search() 363 struct kwork_work *work = zalloc(sizeof(*work)); in work_new() 365 if (work == NULL) { in work_new() 366 pr_err("Failed to zalloc kwork work\ in work_new() 315 struct kwork_work *work; work_search() local 362 struct kwork_work *work = zalloc(sizeof(*work)); work_new() local 383 struct kwork_work *work = work_search(root, key, sort_list); work_findnew() local 409 profile_name_match(struct perf_kwork * kwork,struct kwork_work * work) profile_name_match() argument 420 profile_event_match(struct perf_kwork * kwork,struct kwork_work * work,struct perf_sample * sample) profile_event_match() argument 458 struct kwork_work *work, key; work_push_atom() local 516 struct kwork_work *work, key; work_pop_atom() local 551 struct kwork_work *work; find_work_by_id() local 579 report_update_exit_event(struct kwork_work * work,struct kwork_atom * atom,struct perf_sample * sample) report_update_exit_event() argument 618 struct kwork_work *work = NULL; report_exit_event() local 634 latency_update_entry_event(struct kwork_work * work,struct kwork_atom * atom,struct perf_sample * sample) latency_update_entry_event() argument 673 struct kwork_work *work = NULL; latency_entry_event() local 739 timehist_print_event(struct perf_kwork * kwork,struct kwork_work * work,struct kwork_atom * atom,struct perf_sample * sample,struct addr_location * al) timehist_print_event() argument 832 struct kwork_work *work = NULL; timehist_entry_event() local 853 struct kwork_work *work = NULL; timehist_exit_event() local 883 top_update_runtime(struct kwork_work * work,struct kwork_atom * atom,struct perf_sample * sample) top_update_runtime() argument 914 struct kwork_work *work, *sched_work; top_exit_event() local 945 struct kwork_work *work; top_sched_switch_event() local 1007 irq_work_init(struct perf_kwork * kwork,struct kwork_class * class,struct kwork_work * work,enum kwork_trace_type src_type __maybe_unused,struct evsel * evsel,struct perf_sample * sample,struct machine * machine __maybe_unused) irq_work_init() argument 1025 irq_work_name(struct kwork_work * work,char * buf,int len) irq_work_name() argument 1135 softirq_work_init(struct perf_kwork * kwork,struct kwork_class * class,struct kwork_work * work,enum kwork_trace_type src_type __maybe_unused,struct evsel * evsel,struct perf_sample * sample,struct machine * machine __maybe_unused) softirq_work_init() argument 1156 softirq_work_name(struct kwork_work * work,char * buf,int len) softirq_work_name() argument 1235 workqueue_work_init(struct perf_kwork * kwork __maybe_unused,struct kwork_class * class,struct kwork_work * work,enum kwork_trace_type src_type __maybe_unused,struct evsel * evsel,struct perf_sample * sample,struct machine * machine) workqueue_work_init() argument 1252 workqueue_work_name(struct kwork_work * work,char * buf,int len) workqueue_work_name() argument 1303 sched_work_init(struct perf_kwork * kwork __maybe_unused,struct kwork_class * class,struct kwork_work * work,enum kwork_trace_type src_type,struct evsel * evsel,struct perf_sample * sample,struct machine * machine __maybe_unused) sched_work_init() argument 1321 sched_work_name(struct kwork_work * work,char * buf,int len) sched_work_name() argument 1348 report_print_work(struct perf_kwork * kwork,struct kwork_work * work) report_print_work() argument 1639 top_print_work(struct perf_kwork * kwork __maybe_unused,struct kwork_work * work) top_print_work() argument 1839 process_skipped_events(struct perf_kwork * kwork,struct kwork_work * work) process_skipped_events() argument 1855 struct kwork_work *work = NULL; perf_kwork_add_work() local 1907 struct kwork_work *work; perf_kwork__report() local 2000 struct kwork_work *work; top_calc_total_runtime() local 2019 top_calc_idle_time(struct perf_kwork * kwork,struct kwork_work * work) top_calc_idle_time() argument 2031 top_calc_irq_runtime(struct perf_kwork * kwork,enum kwork_class_type type,struct kwork_work * work) top_calc_irq_runtime() argument 2045 top_subtract_irq_runtime(struct perf_kwork * kwork,struct kwork_work * work) top_subtract_irq_runtime() argument 2072 struct kwork_work *work; top_calc_cpu_usage() local 2101 top_calc_load_runtime(struct perf_kwork * kwork,struct kwork_work * work) top_calc_load_runtime() argument 2152 struct kwork_work *work; perf_kwork__top_report() local [all...] |
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | task_work.c | 45 struct elem *work = value; in process_work() local 47 bpf_copy_from_user_str(work->data, sizeof(work->data), (const void *)user_ptr, 0); in process_work() 57 struct elem *work; in oncpu_hash_map() local 65 work = bpf_map_lookup_elem(&hmap, &key); in oncpu_hash_map() 66 if (!work) in oncpu_hash_map() 68 bpf_task_work_schedule_resume(task, &work->tw, &hmap, process_work); in oncpu_hash_map() 75 struct elem *work; in oncpu_array_map() 79 work = bpf_map_lookup_elem(&arrmap, &key); in oncpu_array_map() 80 if (!work) in oncpu_array_map() 76 struct elem *work; oncpu_array_map() local 91 struct elem *work; oncpu_lru_map() local [all...] |
| H A D | task_work_fail.c | 37 struct elem *work = value; in process_work() local 39 bpf_copy_from_user_str(work->data, sizeof(work->data), (const void *)user_ptr, 0); in process_work() 49 struct elem *work; in mismatch_map() local 53 work = bpf_map_lookup_elem(&arrmap, &key); in mismatch_map() 54 if (!work) in mismatch_map() 56 bpf_task_work_schedule_resume(task, &work->tw, &hmap, process_work); in mismatch_map() 87 struct elem *work; in map_null() local 91 work = bpf_map_lookup_elem(&arrmap, &key); in map_null() 92 if (!work) in map_null() [all...] |
| /linux/net/wireless/ |
| H A D | debugfs.c | 148 struct wiphy_work work; in wiphy_locked_debugfs_read() 164 struct wiphy_work *work) in wiphy_locked_debugfs_read() 166 struct debugfs_read_work *w = container_of(work, typeof(*w), work); in wiphy_locked_debugfs_read() 177 wiphy_work_cancel(w->wiphy, &w->work); in wiphy_locked_debugfs_read() 192 struct debugfs_read_work work = { 200 .completion = COMPLETION_INITIALIZER_ONSTACK(work.completion), 204 .cancel_data = &work, 210 wiphy_work_init(&work.work, wiphy_locked_debugfs_read_wor 115 struct wiphy_work work; global() member 131 wiphy_locked_debugfs_read_work(struct wiphy * wiphy,struct wiphy_work * work) wiphy_locked_debugfs_read_work() argument 159 struct debugfs_read_work work = { wiphy_locked_debugfs_read() local 195 struct wiphy_work work; global() member 211 wiphy_locked_debugfs_write_work(struct wiphy * wiphy,struct wiphy_work * work) wiphy_locked_debugfs_write_work() argument 238 struct debugfs_write_work work = { wiphy_locked_debugfs_write() local [all...] |
| /linux/kernel/bpf/ |
| H A D | mmap_unlock_work.h | 29 struct mmap_unlock_irq_work *work; in bpf_mmap_unlock_guard_get() local 41 work = this_cpu_ptr(&mmap_unlock_work); in bpf_mmap_unlock_guard_get() 42 if (irq_work_is_busy(&work->irq_work) || in bpf_mmap_unlock_guard_get() 43 atomic_cmpxchg_acquire(&work->active, 0, 1)) in bpf_mmap_unlock_guard_get() 46 return work; in bpf_mmap_unlock_guard_get() 50 bpf_mmap_unlock_guard_put(struct mmap_unlock_irq_work *work) in bpf_mmap_unlock_guard_put() argument 52 if (work) in bpf_mmap_unlock_guard_put() 53 atomic_set_release(&work->active, 0); in bpf_mmap_unlock_guard_put() 56 static inline void bpf_mmap_unlock_mm(struct mmap_unlock_irq_work *work, struct mm_struct *mm) in bpf_mmap_unlock_mm() argument 58 if (!work) { in bpf_mmap_unlock_mm() [all …]
|
| /linux/kernel/unwind/ |
| H A D | deferred.c | 152 struct unwind_work *work; in process_unwind_deferred() local 177 list_for_each_entry_srcu(work, &callbacks, list, in process_unwind_deferred() 179 if (test_bit(work->bit, &bits)) { in process_unwind_deferred() 180 work->func(work, &trace, cookie); in process_unwind_deferred() 182 info->cache->unwind_completed |= BIT(work->bit); in process_unwind_deferred() 201 task_work_cancel(task, &info->work); in unwind_deferred_task_exit() 229 int unwind_deferred_request(struct unwind_work *work, u64 *cookie) in unwind_deferred_request() argument 255 bit = READ_ONCE(work->bit); in unwind_deferred_request() 290 ret = task_work_add(current, &info->work, twa_mode); in unwind_deferred_request() 298 void unwind_deferred_cancel(struct unwind_work *work) in unwind_deferred_cancel() argument [all …]
|
| /linux/drivers/net/wireless/st/cw1200/ |
| H A D | sta.h | 60 void cw1200_event_handler(struct work_struct *work); 61 void cw1200_bss_loss_work(struct work_struct *work); 62 void cw1200_bss_params_work(struct work_struct *work); 63 void cw1200_keep_alive_work(struct work_struct *work); 64 void cw1200_tx_failure_work(struct work_struct *work); 80 void cw1200_join_timeout(struct work_struct *work); 81 void cw1200_unjoin_work(struct work_struct *work); 82 void cw1200_join_complete_work(struct work_struct *work); 83 void cw1200_wep_key_work(struct work_struct *work); 86 void cw1200_update_filtering_work(struct work_struct *work); [all …]
|
| /linux/io_uring/ |
| H A D | io-wq.c | 69 struct delayed_work work; member 161 static inline unsigned int io_get_work_hash(struct io_wq_work *work) in io_get_work_hash() argument 163 return __io_get_work_hash(atomic_read(&work->flags)); in io_get_work_hash() 437 static bool io_wq_hash_defer(struct io_wq_work *work, struct io_wq_acct *acct) in io_wq_hash_defer() argument 444 work_flags = atomic_read(&work->flags); in io_wq_hash_defer() 533 struct io_wq_work *work, *tail; in io_get_next_work() local 540 work = container_of(node, struct io_wq_work, list); in io_get_next_work() 543 work_flags = atomic_read(&work->flags); in io_get_next_work() 546 return work; in io_get_next_work() 557 return work; in io_get_next_work() [all …]
|
| /linux/fs/ |
| H A D | fs-writeback.c | 165 static void finish_writeback_work(struct wb_writeback_work *work) in finish_writeback_work() argument 167 struct wb_completion *done = work->done; in finish_writeback_work() 169 if (work->auto_free) in finish_writeback_work() 170 kfree(work); in finish_writeback_work() 181 struct wb_writeback_work *work) in wb_queue_work() argument 183 trace_writeback_queue(wb, work); in wb_queue_work() 185 if (work->done) in wb_queue_work() 186 atomic_inc(&work->done->cnt); in wb_queue_work() 191 list_add_tail(&work->list, &wb->work_list); in wb_queue_work() 194 finish_writeback_work(work); in wb_queue_work() [all …]
|