From: Bobby Eshleman <bobby.eshle...@bytedance.com>

Introduce new reusable function vsock_connectible_lookup_transport()
that performs the transport lookup logic.

No functional change intended.

Reviewed-by: Stefano Garzarella <sgarz...@redhat.com>
Signed-off-by: Bobby Eshleman <bobby.eshle...@bytedance.com>
---
 net/vmw_vsock/af_vsock.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
index 5e7d4d99ea2c..98d10cd30483 100644
--- a/net/vmw_vsock/af_vsock.c
+++ b/net/vmw_vsock/af_vsock.c
@@ -424,6 +424,22 @@ static void vsock_deassign_transport(struct vsock_sock 
*vsk)
        vsk->transport = NULL;
 }
 
+static const struct vsock_transport *
+vsock_connectible_lookup_transport(unsigned int cid, __u8 flags)
+{
+       const struct vsock_transport *transport;
+
+       if (vsock_use_local_transport(cid))
+               transport = transport_local;
+       else if (cid <= VMADDR_CID_HOST || !transport_h2g ||
+                (flags & VMADDR_FLAG_TO_HOST))
+               transport = transport_g2h;
+       else
+               transport = transport_h2g;
+
+       return transport;
+}
+
 /* Assign a transport to a socket and call the .init transport callback.
  *
  * Note: for connection oriented socket this must be called when 
vsk->remote_addr
@@ -464,13 +480,8 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct 
vsock_sock *psk)
                break;
        case SOCK_STREAM:
        case SOCK_SEQPACKET:
-               if (vsock_use_local_transport(remote_cid))
-                       new_transport = transport_local;
-               else if (remote_cid <= VMADDR_CID_HOST || !transport_h2g ||
-                        (remote_flags & VMADDR_FLAG_TO_HOST))
-                       new_transport = transport_g2h;
-               else
-                       new_transport = transport_h2g;
+               new_transport = vsock_connectible_lookup_transport(remote_cid,
+                                                                  
remote_flags);
                break;
        default:
                return -ESOCKTNOSUPPORT;
-- 
2.20.1


Reply via email to