rxrpc: Prune the contents of the rxrpc_conn_proto struct
authorDavid Howells <dhowells@redhat.com>
Thu, 30 Jun 2016 11:16:21 +0000 (12:16 +0100)
committerDavid Howells <dhowells@redhat.com>
Wed, 6 Jul 2016 09:51:14 +0000 (10:51 +0100)
Prune the contents of the rxrpc_conn_proto struct.  Most of the fields aren't
used anymore.

Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/ar-internal.h
net/rxrpc/call_object.c
net/rxrpc/conn_client.c
net/rxrpc/conn_service.c

index d8e4d6e6a030dc4f472aa72257e9e485dacdd68d..6fdee761dd0b062e9963cebf2a8aed1ba9d3e4ee 100644 (file)
@@ -229,18 +229,12 @@ struct rxrpc_peer {
  * Keys for matching a connection.
  */
 struct rxrpc_conn_proto {
-       unsigned long           hash_key;
-       struct rxrpc_local      *local;         /* Representation of local endpoint */
-       u32                     epoch;          /* epoch of this connection */
-       u32                     cid;            /* connection ID */
-       u8                      in_clientflag;  /* RXRPC_CLIENT_INITIATED if we are server */
-       u8                      addr_size;      /* Size of the address */
-       sa_family_t             family;         /* Transport protocol */
-       __be16                  port;           /* Peer UDP/UDP6 port */
-       union {                                 /* Peer address */
-               struct in_addr  ipv4_addr;
-               struct in6_addr ipv6_addr;
-               u32             raw_addr[0];
+       union {
+               struct {
+                       u32     epoch;          /* epoch of this connection */
+                       u32     cid;            /* connection ID */
+               };
+               u64             index_key;
        };
 };
 
@@ -584,7 +578,7 @@ static inline bool rxrpc_conn_is_client(const struct rxrpc_connection *conn)
 
 static inline bool rxrpc_conn_is_service(const struct rxrpc_connection *conn)
 {
-       return conn->proto.in_clientflag;
+       return !rxrpc_conn_is_client(conn);
 }
 
 static inline void rxrpc_get_connection(struct rxrpc_connection *conn)
index 3f278721269e06bb397d54fc9f5cccfea926c004..ebbd7dd5292fb173359cd8928ae5488c8892c2db 100644 (file)
@@ -566,7 +566,7 @@ struct rxrpc_call *rxrpc_incoming_call(struct rxrpc_sock *rx,
        }
        call->epoch = conn->proto.epoch;
        call->service_id = conn->params.service_id;
-       call->in_clientflag = conn->proto.in_clientflag;
+       call->in_clientflag = RXRPC_CLIENT_INITIATED;
        /* Add the new call to the hashtable */
        rxrpc_call_hash_add(call);
 
index aa21462f3236f15f5015558d0b408f54ed91a4aa..917db48d7f599775e160ce952aae1188441b26b1 100644 (file)
@@ -132,22 +132,11 @@ rxrpc_alloc_client_connection(struct rxrpc_conn_parameters *cp, gfp_t gfp)
        }
 
        conn->params            = *cp;
-       conn->proto.local       = cp->local;
        conn->proto.epoch       = rxrpc_epoch;
        conn->proto.cid         = 0;
-       conn->proto.in_clientflag = 0;
-       conn->proto.family      = cp->peer->srx.transport.family;
        conn->out_clientflag    = RXRPC_CLIENT_INITIATED;
        conn->state             = RXRPC_CONN_CLIENT;
 
-       switch (conn->proto.family) {
-       case AF_INET:
-               conn->proto.addr_size = sizeof(conn->proto.ipv4_addr);
-               conn->proto.ipv4_addr = cp->peer->srx.transport.sin.sin_addr;
-               conn->proto.port = cp->peer->srx.transport.sin.sin_port;
-               break;
-       }
-
        ret = rxrpc_get_client_connection_id(conn, gfp);
        if (ret < 0)
                goto error_0;
index 77a509e6003a67c6c0c6c8f31786fc1df673bd3c..c6db2e8400a2844558531218c68f7d46cf3b3e7a 100644 (file)
@@ -70,10 +70,8 @@ struct rxrpc_connection *rxrpc_incoming_connection(struct rxrpc_local *local,
                return ERR_PTR(-ENOMEM);
        }
 
-       candidate->proto.local          = local;
        candidate->proto.epoch          = sp->hdr.epoch;
        candidate->proto.cid            = sp->hdr.cid & RXRPC_CIDMASK;
-       candidate->proto.in_clientflag  = RXRPC_CLIENT_INITIATED;
        candidate->params.local         = local;
        candidate->params.peer          = peer;
        candidate->params.service_id    = sp->hdr.serviceId;