Commit b7ceabd9b528417973619c5b655bc5b21857ac36

Authored by Li Zefan
Committed by David S. Miller
1 parent b999748acc

net: packet: use seq_hlist_foo() helpers

Simplify seq_file code.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 3 additions and 17 deletions Side-by-side Diff

net/packet/af_packet.c
... ... @@ -2510,33 +2510,19 @@
2510 2510 };
2511 2511  
2512 2512 #ifdef CONFIG_PROC_FS
2513   -static inline struct sock *packet_seq_idx(struct net *net, loff_t off)
2514   -{
2515   - struct sock *s;
2516   - struct hlist_node *node;
2517 2513  
2518   - sk_for_each(s, node, &net->packet.sklist) {
2519   - if (!off--)
2520   - return s;
2521   - }
2522   - return NULL;
2523   -}
2524   -
2525 2514 static void *packet_seq_start(struct seq_file *seq, loff_t *pos)
2526 2515 __acquires(seq_file_net(seq)->packet.sklist_lock)
2527 2516 {
2528 2517 struct net *net = seq_file_net(seq);
2529 2518 read_lock(&net->packet.sklist_lock);
2530   - return *pos ? packet_seq_idx(net, *pos - 1) : SEQ_START_TOKEN;
  2519 + return seq_hlist_start_head(&net->packet.sklist, *pos);
2531 2520 }
2532 2521  
2533 2522 static void *packet_seq_next(struct seq_file *seq, void *v, loff_t *pos)
2534 2523 {
2535 2524 struct net *net = seq_file_net(seq);
2536   - ++*pos;
2537   - return (v == SEQ_START_TOKEN)
2538   - ? sk_head(&net->packet.sklist)
2539   - : sk_next((struct sock *)v) ;
  2525 + return seq_hlist_next(v, &net->packet.sklist, pos);
2540 2526 }
2541 2527  
2542 2528 static void packet_seq_stop(struct seq_file *seq, void *v)
... ... @@ -2551,7 +2537,7 @@
2551 2537 if (v == SEQ_START_TOKEN)
2552 2538 seq_puts(seq, "sk RefCnt Type Proto Iface R Rmem User Inode\n");
2553 2539 else {
2554   - struct sock *s = v;
  2540 + struct sock *s = sk_entry(v);
2555 2541 const struct packet_sock *po = pkt_sk(s);
2556 2542  
2557 2543 seq_printf(seq,