Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: appletalk: 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>

authored by

Li Zefan and committed by
David S. Miller
efaffb78 b512f3d8

+3 -27
+3 -27
net/appletalk/atalk_proc.c
··· 144 144 return 0; 145 145 } 146 146 147 - static __inline__ struct sock *atalk_get_socket_idx(loff_t pos) 148 - { 149 - struct sock *s; 150 - struct hlist_node *node; 151 - 152 - sk_for_each(s, node, &atalk_sockets) 153 - if (!pos--) 154 - goto found; 155 - s = NULL; 156 - found: 157 - return s; 158 - } 159 - 160 147 static void *atalk_seq_socket_start(struct seq_file *seq, loff_t *pos) 161 148 __acquires(atalk_sockets_lock) 162 149 { 163 - loff_t l = *pos; 164 - 165 150 read_lock_bh(&atalk_sockets_lock); 166 - return l ? atalk_get_socket_idx(--l) : SEQ_START_TOKEN; 151 + return seq_hlist_start_head(&atalk_sockets, *pos); 167 152 } 168 153 169 154 static void *atalk_seq_socket_next(struct seq_file *seq, void *v, loff_t *pos) 170 155 { 171 - struct sock *i; 172 - 173 - ++*pos; 174 - if (v == SEQ_START_TOKEN) { 175 - i = sk_head(&atalk_sockets); 176 - goto out; 177 - } 178 - i = sk_next(v); 179 - out: 180 - return i; 156 + return seq_hlist_next(v, &atalk_sockets, pos); 181 157 } 182 158 183 159 static void atalk_seq_socket_stop(struct seq_file *seq, void *v) ··· 173 197 goto out; 174 198 } 175 199 176 - s = v; 200 + s = sk_entry(v); 177 201 at = at_sk(s); 178 202 179 203 seq_printf(seq, "%02X %04X:%02X:%02X %04X:%02X:%02X %08X:%08X "