]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/rxrpc/conn_client.c
rxrpc: Separate the connection's protocol service ID from the lookup ID
[mirror_ubuntu-bionic-kernel.git] / net / rxrpc / conn_client.c
index c86f3202f96781909845c7dbc3e344409acec1bf..3f358bf424ad81586eb50f7f88fea5b5bc23bcf9 100644 (file)
@@ -188,6 +188,7 @@ rxrpc_alloc_client_connection(struct rxrpc_conn_parameters *cp, gfp_t gfp)
        conn->params            = *cp;
        conn->out_clientflag    = RXRPC_CLIENT_INITIATED;
        conn->state             = RXRPC_CONN_CLIENT;
+       conn->service_id        = cp->service_id;
 
        ret = rxrpc_get_client_connection_id(conn, gfp);
        if (ret < 0)
@@ -343,6 +344,7 @@ static int rxrpc_get_client_conn(struct rxrpc_call *call,
        if (cp->exclusive) {
                call->conn = candidate;
                call->security_ix = candidate->security_ix;
+               call->service_id = candidate->service_id;
                _leave(" = 0 [exclusive %d]", candidate->debug_id);
                return 0;
        }
@@ -392,6 +394,7 @@ candidate_published:
        set_bit(RXRPC_CONN_IN_CLIENT_CONNS, &candidate->flags);
        call->conn = candidate;
        call->security_ix = candidate->security_ix;
+       call->service_id = candidate->service_id;
        spin_unlock(&local->client_conns_lock);
        _leave(" = 0 [new %d]", candidate->debug_id);
        return 0;
@@ -413,6 +416,7 @@ found_extant_conn:
        spin_lock(&conn->channel_lock);
        call->conn = conn;
        call->security_ix = conn->security_ix;
+       call->service_id = conn->service_id;
        list_add(&call->chan_wait_link, &conn->waiting_calls);
        spin_unlock(&conn->channel_lock);
        _leave(" = 0 [extant %d]", conn->debug_id);