diff options
| author | Linus Torvalds <[email protected]> | 2023-06-26 12:30:26 -0700 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2023-06-26 12:30:26 -0700 | 
| commit | 0aa69d53ac7c30f6184f88f2e310d808b32b35a5 (patch) | |
| tree | 26a666a128578dd1c46f39b432543411caa0d6eb /io_uring/uring_cmd.c | |
| parent | 3eccc0c886b1796f95a289c9d127c8ca1a254bd5 (diff) | |
| parent | c98c81a4ac37b651be7eb9d16f562fc4acc5f867 (diff) | |
Merge tag 'for-6.5/io_uring-2023-06-23' of git://git.kernel.dk/linux
Pull io_uring updates from Jens Axboe:
 "Nothing major in this release, just a bunch of cleanups and some
  optimizations around networking mostly.
   - clean up file request flags handling (Christoph)
   - clean up request freeing and CQ locking (Pavel)
   - support for using pre-registering the io_uring fd at setup time
     (Josh)
   - Add support for user allocated ring memory, rather than having the
     kernel allocate it. Mostly for packing rings into a huge page (me)
   - avoid an unnecessary double retry on receive (me)
   - maintain ordering for task_work, which also improves performance
     (me)
   - misc cleanups/fixes (Pavel, me)"
* tag 'for-6.5/io_uring-2023-06-23' of git://git.kernel.dk/linux: (39 commits)
  io_uring: merge conditional unlock flush helpers
  io_uring: make io_cq_unlock_post static
  io_uring: inline __io_cq_unlock
  io_uring: fix acquire/release annotations
  io_uring: kill io_cq_unlock()
  io_uring: remove IOU_F_TWQ_FORCE_NORMAL
  io_uring: don't batch task put on reqs free
  io_uring: move io_clean_op()
  io_uring: inline io_dismantle_req()
  io_uring: remove io_free_req_tw
  io_uring: open code io_put_req_find_next
  io_uring: add helpers to decode the fixed file file_ptr
  io_uring: use io_file_from_index in io_msg_grab_file
  io_uring: use io_file_from_index in __io_sync_cancel
  io_uring: return REQ_F_ flags from io_file_get_flags
  io_uring: remove io_req_ffs_set
  io_uring: remove a confusing comment above io_file_get_flags
  io_uring: remove the mode variable in io_file_get_flags
  io_uring: remove __io_file_supports_nowait
  io_uring: wait interruptibly for request completions on exit
  ...
Diffstat (limited to 'io_uring/uring_cmd.c')
| -rw-r--r-- | io_uring/uring_cmd.c | 16 | 
1 files changed, 12 insertions, 4 deletions
diff --git a/io_uring/uring_cmd.c b/io_uring/uring_cmd.c index 5e32db48696d..476c7877ce58 100644 --- a/io_uring/uring_cmd.c +++ b/io_uring/uring_cmd.c @@ -20,16 +20,24 @@ static void io_uring_cmd_work(struct io_kiocb *req, struct io_tw_state *ts)  	ioucmd->task_work_cb(ioucmd, issue_flags);  } -void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd, -			void (*task_work_cb)(struct io_uring_cmd *, unsigned)) +void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd, +			void (*task_work_cb)(struct io_uring_cmd *, unsigned), +			unsigned flags)  {  	struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);  	ioucmd->task_work_cb = task_work_cb;  	req->io_task_work.func = io_uring_cmd_work; -	io_req_task_work_add(req); +	__io_req_task_work_add(req, flags); +} +EXPORT_SYMBOL_GPL(__io_uring_cmd_do_in_task); + +void io_uring_cmd_do_in_task_lazy(struct io_uring_cmd *ioucmd, +			void (*task_work_cb)(struct io_uring_cmd *, unsigned)) +{ +	__io_uring_cmd_do_in_task(ioucmd, task_work_cb, IOU_F_TWQ_LAZY_WAKE);  } -EXPORT_SYMBOL_GPL(io_uring_cmd_complete_in_task); +EXPORT_SYMBOL_GPL(io_uring_cmd_do_in_task_lazy);  static inline void io_req_set_cqe32_extra(struct io_kiocb *req,  					  u64 extra1, u64 extra2)  |