|
@@ -344,6 +344,16 @@ static bool vsock_in_connected_table(struct vsock_sock *vsk)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+void vsock_remove_sock(struct vsock_sock *vsk)
|
|
|
+{
|
|
|
+ if (vsock_in_bound_table(vsk))
|
|
|
+ vsock_remove_bound(vsk);
|
|
|
+
|
|
|
+ if (vsock_in_connected_table(vsk))
|
|
|
+ vsock_remove_connected(vsk);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(vsock_remove_sock);
|
|
|
+
|
|
|
void vsock_for_each_connected_socket(void (*fn)(struct sock *sk))
|
|
|
{
|
|
|
int i;
|
|
@@ -660,12 +670,6 @@ static void __vsock_release(struct sock *sk)
|
|
|
vsk = vsock_sk(sk);
|
|
|
pending = NULL; /* Compiler warning. */
|
|
|
|
|
|
- if (vsock_in_bound_table(vsk))
|
|
|
- vsock_remove_bound(vsk);
|
|
|
-
|
|
|
- if (vsock_in_connected_table(vsk))
|
|
|
- vsock_remove_connected(vsk);
|
|
|
-
|
|
|
transport->release(vsk);
|
|
|
|
|
|
lock_sock(sk);
|