diff options
| -rw-r--r-- | io_uring/cmd_net.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/io_uring/cmd_net.c b/io_uring/cmd_net.c index 3b75931bd569..54d05a205e62 100644 --- a/io_uring/cmd_net.c +++ b/io_uring/cmd_net.c @@ -139,16 +139,19 @@ int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags) struct proto *prot = READ_ONCE(sk->sk_prot); int ret, arg = 0; - if (!prot || !prot->ioctl) - return -EOPNOTSUPP; - switch (cmd->cmd_op) { case SOCKET_URING_OP_SIOCINQ: + if (!prot || !prot->ioctl) + return -EOPNOTSUPP; + ret = prot->ioctl(sk, SIOCINQ, &arg); if (ret) return ret; return arg; case SOCKET_URING_OP_SIOCOUTQ: + if (!prot || !prot->ioctl) + return -EOPNOTSUPP; + ret = prot->ioctl(sk, SIOCOUTQ, &arg); if (ret) return ret; |
