Lines Matching refs:nsock
261 static void nbd_mark_nsock_dead(struct nbd_device *nbd, struct nbd_sock *nsock, in nbd_mark_nsock_dead() argument
264 if (!nsock->dead && notify && !nbd_disconnected(nbd->config)) { in nbd_mark_nsock_dead()
273 if (!nsock->dead) { in nbd_mark_nsock_dead()
274 kernel_sock_shutdown(nsock->sock, SHUT_RDWR); in nbd_mark_nsock_dead()
285 nsock->dead = true; in nbd_mark_nsock_dead()
286 nsock->pending = NULL; in nbd_mark_nsock_dead()
287 nsock->sent = 0; in nbd_mark_nsock_dead()
358 struct nbd_sock *nsock = config->socks[i]; in sock_shutdown() local
359 mutex_lock(&nsock->tx_lock); in sock_shutdown()
360 nbd_mark_nsock_dead(nbd, nsock, 0); in sock_shutdown()
361 mutex_unlock(&nsock->tx_lock); in sock_shutdown()
413 struct nbd_sock *nsock = in nbd_xmit_timeout() local
415 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
422 if (cmd->cookie == nsock->cookie) in nbd_xmit_timeout()
423 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_xmit_timeout()
424 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
438 struct nbd_sock *nsock = config->socks[cmd->index]; in nbd_xmit_timeout() local
445 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
446 if (cmd->cookie != nsock->cookie) { in nbd_xmit_timeout()
448 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
453 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
533 struct nbd_sock *nsock = config->socks[index]; in nbd_send_cmd() local
543 int sent = nsock->sent, skip = 0; in nbd_send_cmd()
579 cmd->cookie = nsock->cookie; in nbd_send_cmd()
605 nsock->pending = req; in nbd_send_cmd()
606 nsock->sent = sent; in nbd_send_cmd()
647 nsock->pending = req; in nbd_send_cmd()
648 nsock->sent = sent; in nbd_send_cmd()
670 nsock->pending = NULL; in nbd_send_cmd()
671 nsock->sent = 0; in nbd_send_cmd()
793 struct nbd_sock *nsock = config->socks[args->index]; in recv_work() local
795 mutex_lock(&nsock->tx_lock); in recv_work()
796 nbd_mark_nsock_dead(nbd, nsock, 1); in recv_work()
797 mutex_unlock(&nsock->tx_lock); in recv_work()
839 struct nbd_sock *nsock = config->socks[index]; in find_fallback() local
840 int fallback = nsock->fallback_index; in find_fallback()
855 if (nsock->fallback_index < 0 || in find_fallback()
856 nsock->fallback_index >= config->num_connections || in find_fallback()
857 config->socks[nsock->fallback_index]->dead) { in find_fallback()
867 nsock->fallback_index = new_index; in find_fallback()
874 new_index = nsock->fallback_index; in find_fallback()
899 struct nbd_sock *nsock; in nbd_handle_cmd() local
919 nsock = config->socks[index]; in nbd_handle_cmd()
920 mutex_lock(&nsock->tx_lock); in nbd_handle_cmd()
921 if (nsock->dead) { in nbd_handle_cmd()
924 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
950 if (unlikely(nsock->pending && nsock->pending != req)) { in nbd_handle_cmd()
963 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_handle_cmd()
968 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
1032 struct nbd_sock *nsock; in nbd_add_socket() local
1058 nsock = kzalloc(sizeof(*nsock), GFP_KERNEL); in nbd_add_socket()
1059 if (!nsock) { in nbd_add_socket()
1067 kfree(nsock); in nbd_add_socket()
1074 nsock->fallback_index = -1; in nbd_add_socket()
1075 nsock->dead = false; in nbd_add_socket()
1076 mutex_init(&nsock->tx_lock); in nbd_add_socket()
1077 nsock->sock = sock; in nbd_add_socket()
1078 nsock->pending = NULL; in nbd_add_socket()
1079 nsock->sent = 0; in nbd_add_socket()
1080 nsock->cookie = 0; in nbd_add_socket()
1081 socks[config->num_connections++] = nsock; in nbd_add_socket()
1112 struct nbd_sock *nsock = config->socks[i]; in nbd_reconnect_socket() local
1114 if (!nsock->dead) in nbd_reconnect_socket()
1117 mutex_lock(&nsock->tx_lock); in nbd_reconnect_socket()
1118 if (!nsock->dead) { in nbd_reconnect_socket()
1119 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1127 old = nsock->sock; in nbd_reconnect_socket()
1128 nsock->fallback_index = -1; in nbd_reconnect_socket()
1129 nsock->sock = sock; in nbd_reconnect_socket()
1130 nsock->dead = false; in nbd_reconnect_socket()
1134 nsock->cookie++; in nbd_reconnect_socket()
1135 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1192 struct nbd_sock *nsock = config->socks[i]; in send_disconnects() local
1195 mutex_lock(&nsock->tx_lock); in send_disconnects()
1200 mutex_unlock(&nsock->tx_lock); in send_disconnects()