diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2007-11-11 01:07:13 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-11-11 01:07:13 -0500 |
commit | 5c80f1ae9842a8b7985acd0f02efb9828effb05f (patch) | |
tree | e8a41006d8df869782c9d8c0e686df4a30025ed8 | |
parent | 9305cfa4443dbfb99faf35c5603ec0c0e91b5ef8 (diff) |
[AF_UNIX]: Convert socks to unix_socks in scan_inflight, not in callbacks
The scan_inflight() routine scans through the unix sockets and calls
some passed callback. The fact is that all these callbacks work with
the unix_sock objects, not the sock ones, so make this conversion in
the scan_inflight() before calling the callbacks.
This removes one unneeded variable from the inc_inflight_move_tail().
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/unix/garbage.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/net/unix/garbage.c b/net/unix/garbage.c index 399717ed7b9d..ebdff3d877a1 100644 --- a/net/unix/garbage.c +++ b/net/unix/garbage.c | |||
@@ -161,7 +161,7 @@ static inline struct sk_buff *sock_queue_head(struct sock *sk) | |||
161 | for (skb = sock_queue_head(sk)->next, next = skb->next; \ | 161 | for (skb = sock_queue_head(sk)->next, next = skb->next; \ |
162 | skb != sock_queue_head(sk); skb = next, next = skb->next) | 162 | skb != sock_queue_head(sk); skb = next, next = skb->next) |
163 | 163 | ||
164 | static void scan_inflight(struct sock *x, void (*func)(struct sock *), | 164 | static void scan_inflight(struct sock *x, void (*func)(struct unix_sock *), |
165 | struct sk_buff_head *hitlist) | 165 | struct sk_buff_head *hitlist) |
166 | { | 166 | { |
167 | struct sk_buff *skb; | 167 | struct sk_buff *skb; |
@@ -185,9 +185,9 @@ static void scan_inflight(struct sock *x, void (*func)(struct sock *), | |||
185 | * if it indeed does so | 185 | * if it indeed does so |
186 | */ | 186 | */ |
187 | struct sock *sk = unix_get_socket(*fp++); | 187 | struct sock *sk = unix_get_socket(*fp++); |
188 | if(sk) { | 188 | if (sk) { |
189 | hit = true; | 189 | hit = true; |
190 | func(sk); | 190 | func(unix_sk(sk)); |
191 | } | 191 | } |
192 | } | 192 | } |
193 | if (hit && hitlist != NULL) { | 193 | if (hit && hitlist != NULL) { |
@@ -199,7 +199,7 @@ static void scan_inflight(struct sock *x, void (*func)(struct sock *), | |||
199 | spin_unlock(&x->sk_receive_queue.lock); | 199 | spin_unlock(&x->sk_receive_queue.lock); |
200 | } | 200 | } |
201 | 201 | ||
202 | static void scan_children(struct sock *x, void (*func)(struct sock *), | 202 | static void scan_children(struct sock *x, void (*func)(struct unix_sock *), |
203 | struct sk_buff_head *hitlist) | 203 | struct sk_buff_head *hitlist) |
204 | { | 204 | { |
205 | if (x->sk_state != TCP_LISTEN) | 205 | if (x->sk_state != TCP_LISTEN) |
@@ -235,20 +235,18 @@ static void scan_children(struct sock *x, void (*func)(struct sock *), | |||
235 | } | 235 | } |
236 | } | 236 | } |
237 | 237 | ||
238 | static void dec_inflight(struct sock *sk) | 238 | static void dec_inflight(struct unix_sock *usk) |
239 | { | 239 | { |
240 | atomic_dec(&unix_sk(sk)->inflight); | 240 | atomic_dec(&usk->inflight); |
241 | } | 241 | } |
242 | 242 | ||
243 | static void inc_inflight(struct sock *sk) | 243 | static void inc_inflight(struct unix_sock *usk) |
244 | { | 244 | { |
245 | atomic_inc(&unix_sk(sk)->inflight); | 245 | atomic_inc(&usk->inflight); |
246 | } | 246 | } |
247 | 247 | ||
248 | static void inc_inflight_move_tail(struct sock *sk) | 248 | static void inc_inflight_move_tail(struct unix_sock *u) |
249 | { | 249 | { |
250 | struct unix_sock *u = unix_sk(sk); | ||
251 | |||
252 | atomic_inc(&u->inflight); | 250 | atomic_inc(&u->inflight); |
253 | /* | 251 | /* |
254 | * If this is still a candidate, move it to the end of the | 252 | * If this is still a candidate, move it to the end of the |