Lines Matching refs:sk

55 static inline int rxrpc_writable(struct sock *sk)  in rxrpc_writable()  argument
57 return atomic_read(&sk->sk_wmem_alloc) < (size_t) sk->sk_sndbuf; in rxrpc_writable()
63 static void rxrpc_write_space(struct sock *sk) in rxrpc_write_space() argument
65 _enter("%p", sk); in rxrpc_write_space()
67 if (rxrpc_writable(sk)) { in rxrpc_write_space()
68 struct socket_wq *wq = rcu_dereference(sk->sk_wq); in rxrpc_write_space()
72 sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); in rxrpc_write_space()
125 struct sock *sk = sock->sk; in rxrpc_bind() local
127 struct rxrpc_sock *rx = rxrpc_sk(sk), *prx; in rxrpc_bind()
137 lock_sock(&rx->sk); in rxrpc_bind()
139 if (rx->sk.sk_state != RXRPC_UNCONNECTED) { in rxrpc_bind()
166 rx->sk.sk_state = RXRPC_SERVER_BOUND; in rxrpc_bind()
168 rx->sk.sk_state = RXRPC_CLIENT_BOUND; in rxrpc_bind()
171 release_sock(&rx->sk); in rxrpc_bind()
179 release_sock(&rx->sk); in rxrpc_bind()
190 struct sock *sk = sock->sk; in rxrpc_listen() local
191 struct rxrpc_sock *rx = rxrpc_sk(sk); in rxrpc_listen()
196 lock_sock(&rx->sk); in rxrpc_listen()
198 switch (rx->sk.sk_state) { in rxrpc_listen()
209 sk->sk_max_ack_backlog = backlog; in rxrpc_listen()
210 rx->sk.sk_state = RXRPC_SERVER_LISTENING; in rxrpc_listen()
215 release_sock(&rx->sk); in rxrpc_listen()
230 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_name_to_transport()
236 ASSERT(rx->sk.sk_state > RXRPC_UNCONNECTED); in rxrpc_name_to_transport()
278 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_kernel_begin_call()
283 lock_sock(&rx->sk); in rxrpc_kernel_begin_call()
323 release_sock(&rx->sk); in rxrpc_kernel_begin_call()
360 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_kernel_intercept_rx_messages()
377 struct sock *sk = sock->sk; in rxrpc_connect() local
380 struct rxrpc_sock *rx = rxrpc_sk(sk); in rxrpc_connect()
391 lock_sock(&rx->sk); in rxrpc_connect()
393 switch (rx->sk.sk_state) { in rxrpc_connect()
404 release_sock(&rx->sk); in rxrpc_connect()
408 rx->sk.sk_state = RXRPC_CLIENT_BOUND; in rxrpc_connect()
412 release_sock(&rx->sk); in rxrpc_connect()
415 release_sock(&rx->sk); in rxrpc_connect()
422 release_sock(&rx->sk); in rxrpc_connect()
429 rx->sk.sk_state = RXRPC_CLIENT_CONNECTED; in rxrpc_connect()
431 release_sock(&rx->sk); in rxrpc_connect()
447 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_sendmsg()
450 _enter(",{%d},,%zu", rx->sk.sk_state, len); in rxrpc_sendmsg()
464 lock_sock(&rx->sk); in rxrpc_sendmsg()
481 switch (rx->sk.sk_state) { in rxrpc_sendmsg()
502 release_sock(&rx->sk); in rxrpc_sendmsg()
515 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_setsockopt()
521 lock_sock(&rx->sk); in rxrpc_setsockopt()
531 if (rx->sk.sk_state != RXRPC_UNCONNECTED) in rxrpc_setsockopt()
541 if (rx->sk.sk_state != RXRPC_UNCONNECTED) in rxrpc_setsockopt()
551 if (rx->sk.sk_state != RXRPC_UNCONNECTED) in rxrpc_setsockopt()
561 if (rx->sk.sk_state != RXRPC_UNCONNECTED) in rxrpc_setsockopt()
581 release_sock(&rx->sk); in rxrpc_setsockopt()
592 struct sock *sk = sock->sk; in rxrpc_poll() local
594 sock_poll_wait(file, sk_sleep(sk), wait); in rxrpc_poll()
599 if (!skb_queue_empty(&sk->sk_receive_queue)) in rxrpc_poll()
605 if (rxrpc_writable(sk)) in rxrpc_poll()
618 struct sock *sk; in rxrpc_create() local
635 sk = sk_alloc(net, PF_RXRPC, GFP_KERNEL, &rxrpc_proto, kern); in rxrpc_create()
636 if (!sk) in rxrpc_create()
639 sock_init_data(sock, sk); in rxrpc_create()
640 sk->sk_state = RXRPC_UNCONNECTED; in rxrpc_create()
641 sk->sk_write_space = rxrpc_write_space; in rxrpc_create()
642 sk->sk_max_ack_backlog = sysctl_rxrpc_max_qlen; in rxrpc_create()
643 sk->sk_destruct = rxrpc_sock_destructor; in rxrpc_create()
645 rx = rxrpc_sk(sk); in rxrpc_create()
662 static void rxrpc_sock_destructor(struct sock *sk) in rxrpc_sock_destructor() argument
664 _enter("%p", sk); in rxrpc_sock_destructor()
666 rxrpc_purge_queue(&sk->sk_receive_queue); in rxrpc_sock_destructor()
668 WARN_ON(atomic_read(&sk->sk_wmem_alloc)); in rxrpc_sock_destructor()
669 WARN_ON(!sk_unhashed(sk)); in rxrpc_sock_destructor()
670 WARN_ON(sk->sk_socket); in rxrpc_sock_destructor()
672 if (!sock_flag(sk, SOCK_DEAD)) { in rxrpc_sock_destructor()
673 printk("Attempt to release alive rxrpc socket: %p\n", sk); in rxrpc_sock_destructor()
681 static int rxrpc_release_sock(struct sock *sk) in rxrpc_release_sock() argument
683 struct rxrpc_sock *rx = rxrpc_sk(sk); in rxrpc_release_sock()
685 _enter("%p{%d,%d}", sk, sk->sk_state, atomic_read(&sk->sk_refcnt)); in rxrpc_release_sock()
688 sock_orphan(sk); in rxrpc_release_sock()
689 sk->sk_shutdown = SHUTDOWN_MASK; in rxrpc_release_sock()
691 spin_lock_bh(&sk->sk_receive_queue.lock); in rxrpc_release_sock()
692 sk->sk_state = RXRPC_CLOSE; in rxrpc_release_sock()
693 spin_unlock_bh(&sk->sk_receive_queue.lock); in rxrpc_release_sock()
706 rxrpc_purge_queue(&sk->sk_receive_queue); in rxrpc_release_sock()
730 sock_put(sk); in rxrpc_release_sock()
741 struct sock *sk = sock->sk; in rxrpc_release() local
743 _enter("%p{%p}", sock, sk); in rxrpc_release()
745 if (!sk) in rxrpc_release()
748 sock->sk = NULL; in rxrpc_release()
750 return rxrpc_release_sock(sk); in rxrpc_release()