Version 4 of mine and Jens' patches, to make sure that when our io_uring function gets called a second time, it doesn't accidentally read something from userspace that's gone out of scope or otherwise gotten corrupted. I sent a version 3 on December 17, but it looks like that got forgotten about over Christmas (unsurprisingly). Version 4 fixes a problem that I noticed, namely that we weren't taking a copy of the iovs, which also necessitated creating a struct to store these things in. This does simplify things by removing the need for the kmemdup, however. I also have a patch for io_uring encoded writes ready to go, but it's waiting on some of the stuff introduced here. Jens Axboe (2): io_uring/cmd: rename struct uring_cache to io_uring_cmd_data io_uring/cmd: add per-op data to struct io_uring_cmd_data Mark Harmstone (2): io_uring: add io_uring_cmd_get_async_data helper btrfs: don't read from userspace twice in btrfs_uring_encoded_read() fs/btrfs/ioctl.c | 125 +++++++++++++++++++---------------- include/linux/io_uring/cmd.h | 10 +++ io_uring/io_uring.c | 2 +- io_uring/opdef.c | 3 +- io_uring/uring_cmd.c | 23 +++++-- io_uring/uring_cmd.h | 4 -- 6 files changed, 97 insertions(+), 70 deletions(-) -- 2.45.2