remove_wait_queue(sk_sleep(sk), &wait);
}
}
-EXPORT_SYMBOL(sk_stream_wait_close);
/**
* sk_stream_wait_memory - Wait for more memory for a socket
__IP_INC_STATS(net, IPSTATS_MIB_OUTNOROUTES);
return NULL;
}
-EXPORT_SYMBOL_GPL(inet_csk_route_child_sock);
/* Decide when to expire the request and when to resend SYN-ACK */
static void syn_ack_recalc(struct request_sock *req,
return req;
}
-EXPORT_SYMBOL(inet_reqsk_alloc);
void __reqsk_free(struct request_sock *req)
{
kfree(req->saved_syn);
kmem_cache_free(req->rsk_ops->slab, req);
}
-EXPORT_SYMBOL_GPL(__reqsk_free);
static struct request_sock *inet_reqsk_clone(struct request_sock *req,
struct sock *sk)
sock_put(sk);
}
-EXPORT_SYMBOL(inet_csk_destroy_sock);
void inet_csk_prepare_for_destroy_sock(struct sock *sk)
{
inet_csk_prepare_for_destroy_sock(sk);
inet_sk(sk)->inet_num = 0;
}
-EXPORT_SYMBOL(inet_csk_prepare_forced_close);
static int inet_ulp_can_listen(const struct sock *sk)
{
spin_unlock(&queue->rskq_lock);
return child;
}
-EXPORT_SYMBOL(inet_csk_reqsk_queue_add);
struct sock *inet_csk_complete_hashdance(struct sock *sk, struct sock *child,
struct request_sock *req, bool own_req)
__inet_put_port(sk);
local_bh_enable();
}
-EXPORT_SYMBOL(inet_put_port);
int __inet_inherit_port(const struct sock *sk, struct sock *child)
{
spin_unlock(&head->lock);
return -ENOMEM;
}
-EXPORT_SYMBOL_GPL(__inet_inherit_port);
static struct inet_listen_hashbucket *
inet_lhash2_bucket_sk(struct inet_hashinfo *h, struct sock *sk)
};
DEFINE_PER_CPU(unsigned int, tcp_orphan_count);
-EXPORT_PER_CPU_SYMBOL_GPL(tcp_orphan_count);
long sysctl_tcp_mem[3] __read_mostly;
*/
inet_sk_state_store(sk, state);
}
-EXPORT_SYMBOL_GPL(tcp_set_state);
/*
* State processing on a close. This implements the state shift for
sk_error_report(sk);
return 0;
}
-EXPORT_SYMBOL(tcp_disconnect);
static inline bool tcp_can_repair_sock(const struct sock *sk)
{
else
inet_csk_destroy_sock(sk);
}
-EXPORT_SYMBOL_GPL(tcp_done);
int tcp_abort(struct sock *sk, int err)
{
TCP_INC_STATS(sock_net(sk), TCP_MIB_INERRS);
goto discard;
}
-EXPORT_SYMBOL(tcp_v4_do_rcv);
enum skb_drop_reason tcp_add_backlog(struct sock *sk, struct sk_buff *skb)
{
tcp_update_metrics(sk);
tcp_done(sk);
}
-EXPORT_SYMBOL(tcp_time_wait);
void tcp_twsk_destructor(struct sock *sk)
{
return newsk;
}
-EXPORT_SYMBOL(tcp_create_openreq_child);
/*
* Process an incoming packet for SYN_RECV sockets represented as a