Commit 10cad2c4 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe

io_uring: don't take fs for recvmsg/sendmsg

We don't even allow not plain data msg_control, which is disallowed in
__sys_{send,revb}msg_sock(). So no need in fs for IORING_OP_SENDMSG and
IORING_OP_RECVMSG. fs->lock is less contanged not as much as before, but
there are cases that can be, e.g. IOSQE_ASYNC.
Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 2e9dbe90
...@@ -852,8 +852,7 @@ static const struct io_op_def io_op_defs[] = { ...@@ -852,8 +852,7 @@ static const struct io_op_def io_op_defs[] = {
.pollout = 1, .pollout = 1,
.needs_async_data = 1, .needs_async_data = 1,
.async_size = sizeof(struct io_async_msghdr), .async_size = sizeof(struct io_async_msghdr),
.work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG | .work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG,
IO_WQ_WORK_FS,
}, },
[IORING_OP_RECVMSG] = { [IORING_OP_RECVMSG] = {
.needs_file = 1, .needs_file = 1,
...@@ -862,8 +861,7 @@ static const struct io_op_def io_op_defs[] = { ...@@ -862,8 +861,7 @@ static const struct io_op_def io_op_defs[] = {
.buffer_select = 1, .buffer_select = 1,
.needs_async_data = 1, .needs_async_data = 1,
.async_size = sizeof(struct io_async_msghdr), .async_size = sizeof(struct io_async_msghdr),
.work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG | .work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG,
IO_WQ_WORK_FS,
}, },
[IORING_OP_TIMEOUT] = { [IORING_OP_TIMEOUT] = {
.needs_async_data = 1, .needs_async_data = 1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment