tunnels: fix netns vs proto registration ordering
[safe/jmp/linux-2.6] / net / rxrpc / ar-proc.c
index 58f4b4e..38047f7 100644 (file)
@@ -14,7 +14,7 @@
 #include <net/af_rxrpc.h>
 #include "ar-internal.h"
 
-static const char *rxrpc_conn_states[] = {
+static const char *const rxrpc_conn_states[] = {
        [RXRPC_CONN_UNUSED]             = "Unused  ",
        [RXRPC_CONN_CLIENT]             = "Client  ",
        [RXRPC_CONN_SERVER_UNSECURED]   = "SvUnsec ",
@@ -25,55 +25,18 @@ static const char *rxrpc_conn_states[] = {
        [RXRPC_CONN_NETWORK_ERROR]      = "NetError",
 };
 
-const char *rxrpc_call_states[] = {
-       [RXRPC_CALL_CLIENT_SEND_REQUEST]        = "ClSndReq",
-       [RXRPC_CALL_CLIENT_AWAIT_REPLY]         = "ClAwtRpl",
-       [RXRPC_CALL_CLIENT_RECV_REPLY]          = "ClRcvRpl",
-       [RXRPC_CALL_CLIENT_FINAL_ACK]           = "ClFnlACK",
-       [RXRPC_CALL_SERVER_SECURING]            = "SvSecure",
-       [RXRPC_CALL_SERVER_ACCEPTING]           = "SvAccept",
-       [RXRPC_CALL_SERVER_RECV_REQUEST]        = "SvRcvReq",
-       [RXRPC_CALL_SERVER_ACK_REQUEST]         = "SvAckReq",
-       [RXRPC_CALL_SERVER_SEND_REPLY]          = "SvSndRpl",
-       [RXRPC_CALL_SERVER_AWAIT_ACK]           = "SvAwtACK",
-       [RXRPC_CALL_COMPLETE]                   = "Complete",
-       [RXRPC_CALL_SERVER_BUSY]                = "SvBusy  ",
-       [RXRPC_CALL_REMOTELY_ABORTED]           = "RmtAbort",
-       [RXRPC_CALL_LOCALLY_ABORTED]            = "LocAbort",
-       [RXRPC_CALL_NETWORK_ERROR]              = "NetError",
-       [RXRPC_CALL_DEAD]                       = "Dead    ",
-};
-
 /*
  * generate a list of extant and dead calls in /proc/net/rxrpc_calls
  */
 static void *rxrpc_call_seq_start(struct seq_file *seq, loff_t *_pos)
 {
-       struct list_head *_p;
-       loff_t pos = *_pos;
-
        read_lock(&rxrpc_call_lock);
-       if (!pos)
-               return SEQ_START_TOKEN;
-       pos--;
-
-       list_for_each(_p, &rxrpc_calls)
-               if (!pos--)
-                       break;
-
-       return _p != &rxrpc_calls ? _p : NULL;
+       return seq_list_start_head(&rxrpc_calls, *_pos);
 }
 
 static void *rxrpc_call_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 {
-       struct list_head *_p;
-
-       (*pos)++;
-
-       _p = v;
-       _p = (v == SEQ_START_TOKEN) ? rxrpc_calls.next : _p->next;
-
-       return _p != &rxrpc_calls ? _p : NULL;
+       return seq_list_next(v, &rxrpc_calls, pos);
 }
 
 static void rxrpc_call_seq_stop(struct seq_file *seq, void *v)
@@ -87,7 +50,7 @@ static int rxrpc_call_seq_show(struct seq_file *seq, void *v)
        struct rxrpc_call *call;
        char lbuff[4 + 4 + 4 + 4 + 5 + 1], rbuff[4 + 4 + 4 + 4 + 5 + 1];
 
-       if (v == SEQ_START_TOKEN) {
+       if (v == &rxrpc_calls) {
                seq_puts(seq,
                         "Proto Local                  Remote                "
                         " SvID ConnID   CallID   End Use State    Abort   "
@@ -98,12 +61,12 @@ static int rxrpc_call_seq_show(struct seq_file *seq, void *v)
        call = list_entry(v, struct rxrpc_call, link);
        trans = call->conn->trans;
 
-       sprintf(lbuff, NIPQUAD_FMT":%u",
-               NIPQUAD(trans->local->srx.transport.sin.sin_addr),
+       sprintf(lbuff, "%pI4:%u",
+               &trans->local->srx.transport.sin.sin_addr,
                ntohs(trans->local->srx.transport.sin.sin_port));
 
-       sprintf(rbuff, NIPQUAD_FMT":%u",
-               NIPQUAD(trans->peer->srx.transport.sin.sin_addr),
+       sprintf(rbuff, "%pI4:%u",
+               &trans->peer->srx.transport.sin.sin_addr,
                ntohs(trans->peer->srx.transport.sin.sin_port));
 
        seq_printf(seq,
@@ -123,7 +86,7 @@ static int rxrpc_call_seq_show(struct seq_file *seq, void *v)
        return 0;
 }
 
-static struct seq_operations rxrpc_call_seq_ops = {
+static const struct seq_operations rxrpc_call_seq_ops = {
        .start  = rxrpc_call_seq_start,
        .next   = rxrpc_call_seq_next,
        .stop   = rxrpc_call_seq_stop,
@@ -135,12 +98,12 @@ static int rxrpc_call_seq_open(struct inode *inode, struct file *file)
        return seq_open(file, &rxrpc_call_seq_ops);
 }
 
-struct file_operations rxrpc_call_seq_fops = {
+const struct file_operations rxrpc_call_seq_fops = {
        .owner          = THIS_MODULE,
        .open           = rxrpc_call_seq_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
-       .release        = seq_release_private,
+       .release        = seq_release,
 };
 
 /*
@@ -148,32 +111,14 @@ struct file_operations rxrpc_call_seq_fops = {
  */
 static void *rxrpc_connection_seq_start(struct seq_file *seq, loff_t *_pos)
 {
-       struct list_head *_p;
-       loff_t pos = *_pos;
-
        read_lock(&rxrpc_connection_lock);
-       if (!pos)
-               return SEQ_START_TOKEN;
-       pos--;
-
-       list_for_each(_p, &rxrpc_connections)
-               if (!pos--)
-                       break;
-
-       return _p != &rxrpc_connections ? _p : NULL;
+       return seq_list_start_head(&rxrpc_connections, *_pos);
 }
 
 static void *rxrpc_connection_seq_next(struct seq_file *seq, void *v,
                                       loff_t *pos)
 {
-       struct list_head *_p;
-
-       (*pos)++;
-
-       _p = v;
-       _p = (v == SEQ_START_TOKEN) ? rxrpc_connections.next : _p->next;
-
-       return _p != &rxrpc_connections ? _p : NULL;
+       return seq_list_next(v, &rxrpc_connections, pos);
 }
 
 static void rxrpc_connection_seq_stop(struct seq_file *seq, void *v)
@@ -187,7 +132,7 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
        struct rxrpc_transport *trans;
        char lbuff[4 + 4 + 4 + 4 + 5 + 1], rbuff[4 + 4 + 4 + 4 + 5 + 1];
 
-       if (v == SEQ_START_TOKEN) {
+       if (v == &rxrpc_connections) {
                seq_puts(seq,
                         "Proto Local                  Remote                "
                         " SvID ConnID   Calls    End Use State    Key     "
@@ -199,12 +144,12 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
        conn = list_entry(v, struct rxrpc_connection, link);
        trans = conn->trans;
 
-       sprintf(lbuff, NIPQUAD_FMT":%u",
-               NIPQUAD(trans->local->srx.transport.sin.sin_addr),
+       sprintf(lbuff, "%pI4:%u",
+               &trans->local->srx.transport.sin.sin_addr,
                ntohs(trans->local->srx.transport.sin.sin_port));
 
-       sprintf(rbuff, NIPQUAD_FMT":%u",
-               NIPQUAD(trans->peer->srx.transport.sin.sin_addr),
+       sprintf(rbuff, "%pI4:%u",
+               &trans->peer->srx.transport.sin.sin_addr,
                ntohs(trans->peer->srx.transport.sin.sin_port));
 
        seq_printf(seq,
@@ -225,7 +170,7 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
        return 0;
 }
 
-static struct seq_operations rxrpc_connection_seq_ops = {
+static const struct seq_operations rxrpc_connection_seq_ops = {
        .start  = rxrpc_connection_seq_start,
        .next   = rxrpc_connection_seq_next,
        .stop   = rxrpc_connection_seq_stop,
@@ -238,10 +183,10 @@ static int rxrpc_connection_seq_open(struct inode *inode, struct file *file)
        return seq_open(file, &rxrpc_connection_seq_ops);
 }
 
-struct file_operations rxrpc_connection_seq_fops = {
+const struct file_operations rxrpc_connection_seq_fops = {
        .owner          = THIS_MODULE,
        .open           = rxrpc_connection_seq_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
-       .release        = seq_release_private,
+       .release        = seq_release,
 };