Commit dcc55d7b authored by Arseniy Krasnov's avatar Arseniy Krasnov Committed by David S. Miller
Browse files

vsock: enable SOCK_SUPPORT_ZC bit



This bit is used by io_uring in case of zerocopy tx mode. io_uring code
checks, that socket has this feature. This patch sets it in two places:
1) For socket in 'connect()' call.
2) For new socket which is returned by 'accept()' call.

Signed-off-by: default avatarArseniy Krasnov <avkrasnov@salutedevices.com>
Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5fbfc7d2
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1406,6 +1406,9 @@ static int vsock_connect(struct socket *sock, struct sockaddr *addr,
			goto out;
		}

		if (vsock_msgzerocopy_allow(transport))
			set_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags);

		err = vsock_auto_bind(vsk);
		if (err)
			goto out;
@@ -1560,6 +1563,9 @@ static int vsock_accept(struct socket *sock, struct socket *newsock, int flags,
		} else {
			newsock->state = SS_CONNECTED;
			sock_graft(connected, newsock);
			if (vsock_msgzerocopy_allow(vconnected->transport))
				set_bit(SOCK_SUPPORT_ZC,
					&connected->sk_socket->flags);
		}

		release_sock(connected);