Commit 5c80f1ae authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by David S. Miller

[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: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9305cfa4
...@@ -161,7 +161,7 @@ static inline struct sk_buff *sock_queue_head(struct sock *sk) ...@@ -161,7 +161,7 @@ static inline struct sk_buff *sock_queue_head(struct sock *sk)
for (skb = sock_queue_head(sk)->next, next = skb->next; \ for (skb = sock_queue_head(sk)->next, next = skb->next; \
skb != sock_queue_head(sk); skb = next, next = skb->next) skb != sock_queue_head(sk); skb = next, next = skb->next)
static void scan_inflight(struct sock *x, void (*func)(struct sock *), static void scan_inflight(struct sock *x, void (*func)(struct unix_sock *),
struct sk_buff_head *hitlist) struct sk_buff_head *hitlist)
{ {
struct sk_buff *skb; struct sk_buff *skb;
...@@ -185,9 +185,9 @@ static void scan_inflight(struct sock *x, void (*func)(struct sock *), ...@@ -185,9 +185,9 @@ static void scan_inflight(struct sock *x, void (*func)(struct sock *),
* if it indeed does so * if it indeed does so
*/ */
struct sock *sk = unix_get_socket(*fp++); struct sock *sk = unix_get_socket(*fp++);
if(sk) { if (sk) {
hit = true; hit = true;
func(sk); func(unix_sk(sk));
} }
} }
if (hit && hitlist != NULL) { if (hit && hitlist != NULL) {
...@@ -199,7 +199,7 @@ static void scan_inflight(struct sock *x, void (*func)(struct sock *), ...@@ -199,7 +199,7 @@ static void scan_inflight(struct sock *x, void (*func)(struct sock *),
spin_unlock(&x->sk_receive_queue.lock); spin_unlock(&x->sk_receive_queue.lock);
} }
static void scan_children(struct sock *x, void (*func)(struct sock *), static void scan_children(struct sock *x, void (*func)(struct unix_sock *),
struct sk_buff_head *hitlist) struct sk_buff_head *hitlist)
{ {
if (x->sk_state != TCP_LISTEN) if (x->sk_state != TCP_LISTEN)
...@@ -235,20 +235,18 @@ static void scan_children(struct sock *x, void (*func)(struct sock *), ...@@ -235,20 +235,18 @@ static void scan_children(struct sock *x, void (*func)(struct sock *),
} }
} }
static void dec_inflight(struct sock *sk) static void dec_inflight(struct unix_sock *usk)
{ {
atomic_dec(&unix_sk(sk)->inflight); atomic_dec(&usk->inflight);
} }
static void inc_inflight(struct sock *sk) static void inc_inflight(struct unix_sock *usk)
{ {
atomic_inc(&unix_sk(sk)->inflight); atomic_inc(&usk->inflight);
} }
static void inc_inflight_move_tail(struct sock *sk) static void inc_inflight_move_tail(struct unix_sock *u)
{ {
struct unix_sock *u = unix_sk(sk);
atomic_inc(&u->inflight); atomic_inc(&u->inflight);
/* /*
* If this is still a candidate, move it to the end of the * If this is still a candidate, move it to the end of the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment