[UNIX] Move the unix sock iterators in to proper place
The first_unix_socket() and next_unix_sockets() are now used in proc file and in forall_unix_socets macro only. The forall_unix_sockets is not used in this file at all so remove it. After this move the helpers to where they really belong, i.e. closer to proc code under the #ifdef CONFIG_PROC_FS option. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c28149016c
commit
a53eb3feb2
|
@ -127,32 +127,6 @@ static atomic_t unix_nr_socks = ATOMIC_INIT(0);
|
||||||
|
|
||||||
#define UNIX_ABSTRACT(sk) (unix_sk(sk)->addr->hash != UNIX_HASH_SIZE)
|
#define UNIX_ABSTRACT(sk) (unix_sk(sk)->addr->hash != UNIX_HASH_SIZE)
|
||||||
|
|
||||||
static struct sock *first_unix_socket(int *i)
|
|
||||||
{
|
|
||||||
for (*i = 0; *i <= UNIX_HASH_SIZE; (*i)++) {
|
|
||||||
if (!hlist_empty(&unix_socket_table[*i]))
|
|
||||||
return __sk_head(&unix_socket_table[*i]);
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct sock *next_unix_socket(int *i, struct sock *s)
|
|
||||||
{
|
|
||||||
struct sock *next = sk_next(s);
|
|
||||||
/* More in this chain? */
|
|
||||||
if (next)
|
|
||||||
return next;
|
|
||||||
/* Look for next non-empty chain. */
|
|
||||||
for ((*i)++; *i <= UNIX_HASH_SIZE; (*i)++) {
|
|
||||||
if (!hlist_empty(&unix_socket_table[*i]))
|
|
||||||
return __sk_head(&unix_socket_table[*i]);
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define forall_unix_sockets(i, s) \
|
|
||||||
for (s = first_unix_socket(&(i)); s; s = next_unix_socket(&(i),(s)))
|
|
||||||
|
|
||||||
#ifdef CONFIG_SECURITY_NETWORK
|
#ifdef CONFIG_SECURITY_NETWORK
|
||||||
static void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb)
|
static void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
@ -2017,6 +1991,29 @@ static unsigned int unix_poll(struct file * file, struct socket *sock, poll_tabl
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
|
static struct sock *first_unix_socket(int *i)
|
||||||
|
{
|
||||||
|
for (*i = 0; *i <= UNIX_HASH_SIZE; (*i)++) {
|
||||||
|
if (!hlist_empty(&unix_socket_table[*i]))
|
||||||
|
return __sk_head(&unix_socket_table[*i]);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct sock *next_unix_socket(int *i, struct sock *s)
|
||||||
|
{
|
||||||
|
struct sock *next = sk_next(s);
|
||||||
|
/* More in this chain? */
|
||||||
|
if (next)
|
||||||
|
return next;
|
||||||
|
/* Look for next non-empty chain. */
|
||||||
|
for ((*i)++; *i <= UNIX_HASH_SIZE; (*i)++) {
|
||||||
|
if (!hlist_empty(&unix_socket_table[*i]))
|
||||||
|
return __sk_head(&unix_socket_table[*i]);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
struct unix_iter_state {
|
struct unix_iter_state {
|
||||||
struct seq_net_private p;
|
struct seq_net_private p;
|
||||||
int i;
|
int i;
|
||||||
|
|
Loading…
Reference in New Issue