Commit b7ceabd9b528417973619c5b655bc5b21857ac36
Committed by
David S. Miller
1 parent
b999748acc
Exists in
master
and in
7 other branches
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, |