Skip to content

Commit

Permalink
io_uring: move shutdown under the general net section
Browse files Browse the repository at this point in the history
Gets rid of some ifdefs and enables use of the net defines for when
CONFIG_NET isn't set.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Jens Axboe committed May 31, 2022
1 parent 157dc81 commit 1151a7c
Showing 1 changed file with 29 additions and 36 deletions.
65 changes: 29 additions & 36 deletions fs/io_uring.c
Original file line number Diff line number Diff line change
Expand Up @@ -5113,42 +5113,6 @@ static int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags)
return 0;
}

static int io_shutdown_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{
#if defined(CONFIG_NET)
if (unlikely(sqe->off || sqe->addr || sqe->rw_flags ||
sqe->buf_index || sqe->splice_fd_in))
return -EINVAL;

req->shutdown.how = READ_ONCE(sqe->len);
return 0;
#else
return -EOPNOTSUPP;
#endif
}

static int io_shutdown(struct io_kiocb *req, unsigned int issue_flags)
{
#if defined(CONFIG_NET)
struct socket *sock;
int ret;

if (issue_flags & IO_URING_F_NONBLOCK)
return -EAGAIN;

sock = sock_from_file(req->file);
if (unlikely(!sock))
return -ENOTSOCK;

ret = __sys_shutdown_sock(sock, req->shutdown.how);
io_req_complete(req, ret);
return 0;
#else
return -EOPNOTSUPP;
#endif
}

static int __io_splice_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{
Expand Down Expand Up @@ -6073,6 +6037,34 @@ static int io_sync_file_range(struct io_kiocb *req, unsigned int issue_flags)
}

#if defined(CONFIG_NET)
static int io_shutdown_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{
if (unlikely(sqe->off || sqe->addr || sqe->rw_flags ||
sqe->buf_index || sqe->splice_fd_in))
return -EINVAL;

req->shutdown.how = READ_ONCE(sqe->len);
return 0;
}

static int io_shutdown(struct io_kiocb *req, unsigned int issue_flags)
{
struct socket *sock;
int ret;

if (issue_flags & IO_URING_F_NONBLOCK)
return -EAGAIN;

sock = sock_from_file(req->file);
if (unlikely(!sock))
return -ENOTSOCK;

ret = __sys_shutdown_sock(sock, req->shutdown.how);
io_req_complete(req, ret);
return 0;
}

static bool io_net_retry(struct socket *sock, int flags)
{
if (!(flags & MSG_WAITALL))
Expand Down Expand Up @@ -6777,6 +6769,7 @@ IO_NETOP_PREP_ASYNC(recvmsg);
IO_NETOP_PREP_ASYNC(connect);
IO_NETOP_PREP(accept);
IO_NETOP_PREP(socket);
IO_NETOP_PREP(shutdown);
IO_NETOP_FN(send);
IO_NETOP_FN(recv);
#endif /* CONFIG_NET */
Expand Down

0 comments on commit 1151a7c

Please sign in to comment.