Lines Matching refs:st
2251 struct tcp_iter_state *st = seq->private; in listening_get_next() local
2255 ilb = &tcp_hashinfo.listening_hash[st->bucket]; in listening_get_next()
2258 st->offset = 0; in listening_get_next()
2261 ilb = &tcp_hashinfo.listening_hash[st->bucket]; in listening_get_next()
2262 ++st->num; in listening_get_next()
2263 ++st->offset; in listening_get_next()
2265 if (st->state == TCP_SEQ_STATE_OPENREQ) { in listening_get_next()
2268 icsk = inet_csk(st->syn_wait_sk); in listening_get_next()
2272 if (req->rsk_ops->family == st->family) { in listening_get_next()
2278 if (++st->sbucket >= icsk->icsk_accept_queue.listen_opt->nr_table_entries) in listening_get_next()
2281 req = icsk->icsk_accept_queue.listen_opt->syn_table[st->sbucket]; in listening_get_next()
2283 sk = sk_nulls_next(st->syn_wait_sk); in listening_get_next()
2284 st->state = TCP_SEQ_STATE_LISTENING; in listening_get_next()
2298 if (sk->sk_family == st->family) { in listening_get_next()
2306 st->uid = sock_i_uid(sk); in listening_get_next()
2307 st->syn_wait_sk = sk; in listening_get_next()
2308 st->state = TCP_SEQ_STATE_OPENREQ; in listening_get_next()
2309 st->sbucket = 0; in listening_get_next()
2315 st->offset = 0; in listening_get_next()
2316 if (++st->bucket < INET_LHTABLE_SIZE) { in listening_get_next()
2317 ilb = &tcp_hashinfo.listening_hash[st->bucket]; in listening_get_next()
2329 struct tcp_iter_state *st = seq->private; in listening_get_idx() local
2332 st->bucket = 0; in listening_get_idx()
2333 st->offset = 0; in listening_get_idx()
2343 static inline bool empty_bucket(struct tcp_iter_state *st) in empty_bucket() argument
2345 return hlist_nulls_empty(&tcp_hashinfo.ehash[st->bucket].chain) && in empty_bucket()
2346 hlist_nulls_empty(&tcp_hashinfo.ehash[st->bucket].twchain); in empty_bucket()
2355 struct tcp_iter_state *st = seq->private; in established_get_first() local
2359 st->offset = 0; in established_get_first()
2360 for (; st->bucket <= tcp_hashinfo.ehash_mask; ++st->bucket) { in established_get_first()
2364 spinlock_t *lock = inet_ehash_lockp(&tcp_hashinfo, st->bucket); in established_get_first()
2367 if (empty_bucket(st)) in established_get_first()
2371 sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) { in established_get_first()
2372 if (sk->sk_family != st->family || in established_get_first()
2379 st->state = TCP_SEQ_STATE_TIME_WAIT; in established_get_first()
2381 &tcp_hashinfo.ehash[st->bucket].twchain) { in established_get_first()
2382 if (tw->tw_family != st->family || in established_get_first()
2390 st->state = TCP_SEQ_STATE_ESTABLISHED; in established_get_first()
2401 struct tcp_iter_state *st = seq->private; in established_get_next() local
2404 ++st->num; in established_get_next()
2405 ++st->offset; in established_get_next()
2407 if (st->state == TCP_SEQ_STATE_TIME_WAIT) { in established_get_next()
2411 while (tw && (tw->tw_family != st->family || !net_eq(twsk_net(tw), net))) { in established_get_next()
2418 spin_unlock_bh(inet_ehash_lockp(&tcp_hashinfo, st->bucket)); in established_get_next()
2419 st->state = TCP_SEQ_STATE_ESTABLISHED; in established_get_next()
2422 st->offset = 0; in established_get_next()
2423 while (++st->bucket <= tcp_hashinfo.ehash_mask && in established_get_next()
2424 empty_bucket(st)) in established_get_next()
2426 if (st->bucket > tcp_hashinfo.ehash_mask) in established_get_next()
2429 spin_lock_bh(inet_ehash_lockp(&tcp_hashinfo, st->bucket)); in established_get_next()
2430 sk = sk_nulls_head(&tcp_hashinfo.ehash[st->bucket].chain); in established_get_next()
2435 if (sk->sk_family == st->family && net_eq(sock_net(sk), net)) in established_get_next()
2439 st->state = TCP_SEQ_STATE_TIME_WAIT; in established_get_next()
2440 tw = tw_head(&tcp_hashinfo.ehash[st->bucket].twchain); in established_get_next()
2450 struct tcp_iter_state *st = seq->private; in established_get_idx() local
2453 st->bucket = 0; in established_get_idx()
2466 struct tcp_iter_state *st = seq->private; in tcp_get_idx() local
2468 st->state = TCP_SEQ_STATE_LISTENING; in tcp_get_idx()
2472 st->state = TCP_SEQ_STATE_ESTABLISHED; in tcp_get_idx()
2481 struct tcp_iter_state *st = seq->private; in tcp_seek_last_pos() local
2482 int offset = st->offset; in tcp_seek_last_pos()
2483 int orig_num = st->num; in tcp_seek_last_pos()
2486 switch (st->state) { in tcp_seek_last_pos()
2489 if (st->bucket >= INET_LHTABLE_SIZE) in tcp_seek_last_pos()
2491 st->state = TCP_SEQ_STATE_LISTENING; in tcp_seek_last_pos()
2497 st->bucket = 0; in tcp_seek_last_pos()
2501 st->state = TCP_SEQ_STATE_ESTABLISHED; in tcp_seek_last_pos()
2502 if (st->bucket > tcp_hashinfo.ehash_mask) in tcp_seek_last_pos()
2509 st->num = orig_num; in tcp_seek_last_pos()
2516 struct tcp_iter_state *st = seq->private; in tcp_seq_start() local
2519 if (*pos && *pos == st->last_pos) { in tcp_seq_start()
2525 st->state = TCP_SEQ_STATE_LISTENING; in tcp_seq_start()
2526 st->num = 0; in tcp_seq_start()
2527 st->bucket = 0; in tcp_seq_start()
2528 st->offset = 0; in tcp_seq_start()
2532 st->last_pos = *pos; in tcp_seq_start()
2538 struct tcp_iter_state *st = seq->private; in tcp_seq_next() local
2546 switch (st->state) { in tcp_seq_next()
2551 st->state = TCP_SEQ_STATE_ESTABLISHED; in tcp_seq_next()
2552 st->bucket = 0; in tcp_seq_next()
2553 st->offset = 0; in tcp_seq_next()
2564 st->last_pos = *pos; in tcp_seq_next()
2570 struct tcp_iter_state *st = seq->private; in tcp_seq_stop() local
2572 switch (st->state) { in tcp_seq_stop()
2575 struct inet_connection_sock *icsk = inet_csk(st->syn_wait_sk); in tcp_seq_stop()
2580 spin_unlock_bh(&tcp_hashinfo.listening_hash[st->bucket].lock); in tcp_seq_stop()
2585 spin_unlock_bh(inet_ehash_lockp(&tcp_hashinfo, st->bucket)); in tcp_seq_stop()
2740 struct tcp_iter_state *st; in tcp4_seq_show() local
2750 st = seq->private; in tcp4_seq_show()
2752 switch (st->state) { in tcp4_seq_show()
2755 get_tcp4_sock(v, seq, st->num, &len); in tcp4_seq_show()
2758 get_openreq4(st->syn_wait_sk, v, seq, st->num, st->uid, &len); in tcp4_seq_show()
2761 get_timewait4_sock(v, seq, st->num, &len); in tcp4_seq_show()