Merge tag 'net-accept-more-20240515' of git://git.kernel.dk/linux
[linux-2.6-block.git] / net / ipv4 / af_inet.c
index 44564d009e95e6972e5a58c659889a0ed96749d8..ce50d7187a3ffbae3084a89023cd2fb384290465 100644 (file)
@@ -771,16 +771,16 @@ void __inet_accept(struct socket *sock, struct socket *newsock, struct sock *new
  *     Accept a pending connection. The TCP layer now gives BSD semantics.
  */
 
-int inet_accept(struct socket *sock, struct socket *newsock, int flags,
-               bool kern)
+int inet_accept(struct socket *sock, struct socket *newsock,
+               struct proto_accept_arg *arg)
 {
        struct sock *sk1 = sock->sk, *sk2;
-       int err = -EINVAL;
 
        /* IPV6_ADDRFORM can change sk->sk_prot under us. */
-       sk2 = READ_ONCE(sk1->sk_prot)->accept(sk1, flags, &err, kern);
+       arg->err = -EINVAL;
+       sk2 = READ_ONCE(sk1->sk_prot)->accept(sk1, arg);
        if (!sk2)
-               return err;
+               return arg->err;
 
        lock_sock(sk2);
        __inet_accept(sock, newsock, sk2);