| Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Move both the opcodes related to it, and the internals code dealing with
it.
Signed-off-by: Jens Axboe <[email protected]>
|
|
This also helps cleanup the io_uring.h cancel parts, as we can make
things static in the cancel.c file, mostly.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Add a io_poll_issue() rather than export the general task_work locking
and io_issue_sqe(), and put the io_op_defs definition and structure into
a separate header file so that poll can use it.
Signed-off-by: Jens Axboe <[email protected]>
|
|
This kills the last per-op switch.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Remove some dead headers we no longer need, and get rid of the
io_ring_ctx and io_uring_fops forward declarations.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
This also means moving a bit more of the fixed file handling to the
filetable side, which makes sense separately too.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Convert the last spots that check for io_uring_fops to use the provided
helper instead.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
While at it, convert the handlers to just use io_eopnotsupp_prep()
if CONFIG_NET isn't set.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Would be nice to sort out Kconfig for this and don't even compile
epoll.c if we don't have epoll configured.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Add it and use it for the epoll handling, if epoll isn't configured.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
This splits out sync_file_range, fsync, and fallocate.
Signed-off-by: Jens Axboe <[email protected]>
|
|
This splits out splice and tee support.
Signed-off-by: Jens Axboe <[email protected]>
|
|
This splits out renameat, unlinkat, mkdirat, symlinkat, and linkat.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Normally request handlers complete requests themselves, if they don't
return an error. For the latter case, the core will complete it for
them.
This is unhandy for pushing opcode handlers further out, as we don't
want a bunch of inline completion code and we don't want to make the
completion path slower than it is now.
Let the core handle any completion, unless the handler explicitly
asks us not to.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
This adds definitions of structs that both the core and the various
opcode handlers need to know about.
Signed-off-by: Jens Axboe <[email protected]>
|
|
This can move request type specific cleanup into a private handler,
removing the need for the core io_uring parts to know what types
they are dealing with.
Signed-off-by: Jens Axboe <[email protected]>
|
|
They are really just a subset of each other, just use the one type.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
This converts statx, rename, unlink, mkdir, symlink, and hardlink to
use io_cmd_type.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
Signed-off-by: Jens Axboe <[email protected]>
|
|
They all share the same struct io_sync, convert them to use the
io_cmd_type approach instead.
Signed-off-by: Jens Axboe <[email protected]>
|
|
This converts accept, connect, send/recv, sendmsg/recvmsg, shutdown, and
socket to use io_cmd_type.
Signed-off-by: Jens Axboe <[email protected]>
|
|
There's a special case for recvmsg with MSG_ERRQUEUE set. This is
problematic as it means the core needs to know about this special
request type.
For now, just add a generic flag for it.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Remove struct io_poll_update from io_kiocb, and convert the poll path to
use the io_cmd_type approach instead.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Remove struct io_poll_iocb from io_kiocb, and convert the poll path to
use the io_cmd_type approach instead.
While at it, rename io_poll_iocb to io_poll which is consistent with the
other request type private structures.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Remove struct io_rw from io_kiocb, and convert the read/write path to
use the io_cmd_type approach instead.
Signed-off-by: Jens Axboe <[email protected]>
|
|
Each opcode generally has a command structure in io_kiocb which it can
use to store data associated with that request.
In preparation for having the core layer not know about what's inside
these fields, add a generic io_cmd_data type and put in the union as
well.
Signed-off-by: Jens Axboe <[email protected]>
|