Lines Matching refs:rx

25 	struct rxrpc_sock *rx;  in rxrpc_notify_socket()  local
35 rx = rcu_dereference(call->socket); in rxrpc_notify_socket()
36 sk = &rx->sk; in rxrpc_notify_socket()
37 if (rx && sk->sk_state < RXRPC_CLOSE) { in rxrpc_notify_socket()
43 spin_lock(&rx->recvmsg_lock); in rxrpc_notify_socket()
46 list_add_tail(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_notify_socket()
48 spin_unlock(&rx->recvmsg_lock); in rxrpc_notify_socket()
282 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg() local
296 timeo = sock_rcvtimeo(&rx->sk, flags & MSG_DONTWAIT); in rxrpc_recvmsg()
299 lock_sock(&rx->sk); in rxrpc_recvmsg()
302 if (RB_EMPTY_ROOT(&rx->calls) && in rxrpc_recvmsg()
303 list_empty(&rx->recvmsg_q) && in rxrpc_recvmsg()
304 rx->sk.sk_state != RXRPC_SERVER_LISTENING) { in rxrpc_recvmsg()
305 release_sock(&rx->sk); in rxrpc_recvmsg()
309 if (list_empty(&rx->recvmsg_q)) { in rxrpc_recvmsg()
316 release_sock(&rx->sk); in rxrpc_recvmsg()
319 prepare_to_wait_exclusive(sk_sleep(&rx->sk), &wait, in rxrpc_recvmsg()
321 ret = sock_error(&rx->sk); in rxrpc_recvmsg()
325 if (list_empty(&rx->recvmsg_q)) { in rxrpc_recvmsg()
331 finish_wait(sk_sleep(&rx->sk), &wait); in rxrpc_recvmsg()
340 spin_lock(&rx->recvmsg_lock); in rxrpc_recvmsg()
341 l = rx->recvmsg_q.next; in rxrpc_recvmsg()
347 spin_unlock(&rx->recvmsg_lock); in rxrpc_recvmsg()
348 release_sock(&rx->sk); in rxrpc_recvmsg()
358 spin_unlock(&rx->recvmsg_lock); in rxrpc_recvmsg()
375 release_sock(&rx->sk); in rxrpc_recvmsg()
429 rxrpc_release_call(rx, call); in rxrpc_recvmsg()
448 spin_lock(&rx->recvmsg_lock); in rxrpc_recvmsg()
449 list_add(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_recvmsg()
450 spin_unlock(&rx->recvmsg_lock); in rxrpc_recvmsg()
456 release_sock(&rx->sk); in rxrpc_recvmsg()
464 finish_wait(sk_sleep(&rx->sk), &wait); in rxrpc_recvmsg()