Lines Matching refs:nsock
284 static void nbd_mark_nsock_dead(struct nbd_device *nbd, struct nbd_sock *nsock, in nbd_mark_nsock_dead() argument
287 if (!nsock->dead && notify && !nbd_disconnected(nbd->config)) { in nbd_mark_nsock_dead()
296 if (!nsock->dead) { in nbd_mark_nsock_dead()
297 kernel_sock_shutdown(nsock->sock, SHUT_RDWR); in nbd_mark_nsock_dead()
308 nsock->dead = true; in nbd_mark_nsock_dead()
309 nsock->pending = NULL; in nbd_mark_nsock_dead()
310 nsock->sent = 0; in nbd_mark_nsock_dead()
374 struct nbd_sock *nsock = config->socks[i]; in sock_shutdown() local
375 mutex_lock(&nsock->tx_lock); in sock_shutdown()
376 nbd_mark_nsock_dead(nbd, nsock, 0); in sock_shutdown()
377 mutex_unlock(&nsock->tx_lock); in sock_shutdown()
429 struct nbd_sock *nsock = in nbd_xmit_timeout() local
431 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
438 if (cmd->cookie == nsock->cookie) in nbd_xmit_timeout()
439 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_xmit_timeout()
440 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
454 struct nbd_sock *nsock = config->socks[cmd->index]; in nbd_xmit_timeout() local
461 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
462 if (cmd->cookie != nsock->cookie) { in nbd_xmit_timeout()
464 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
469 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
549 struct nbd_sock *nsock = config->socks[index]; in nbd_send_cmd() local
559 int sent = nsock->sent, skip = 0; in nbd_send_cmd()
595 cmd->cookie = nsock->cookie; in nbd_send_cmd()
621 nsock->pending = req; in nbd_send_cmd()
622 nsock->sent = sent; in nbd_send_cmd()
663 nsock->pending = req; in nbd_send_cmd()
664 nsock->sent = sent; in nbd_send_cmd()
686 nsock->pending = NULL; in nbd_send_cmd()
687 nsock->sent = 0; in nbd_send_cmd()
809 struct nbd_sock *nsock = config->socks[args->index]; in recv_work() local
811 mutex_lock(&nsock->tx_lock); in recv_work()
812 nbd_mark_nsock_dead(nbd, nsock, 1); in recv_work()
813 mutex_unlock(&nsock->tx_lock); in recv_work()
855 struct nbd_sock *nsock = config->socks[index]; in find_fallback() local
856 int fallback = nsock->fallback_index; in find_fallback()
871 if (nsock->fallback_index < 0 || in find_fallback()
872 nsock->fallback_index >= config->num_connections || in find_fallback()
873 config->socks[nsock->fallback_index]->dead) { in find_fallback()
883 nsock->fallback_index = new_index; in find_fallback()
890 new_index = nsock->fallback_index; in find_fallback()
911 struct nbd_sock *nsock; in nbd_handle_cmd() local
931 nsock = config->socks[index]; in nbd_handle_cmd()
932 mutex_lock(&nsock->tx_lock); in nbd_handle_cmd()
933 if (nsock->dead) { in nbd_handle_cmd()
936 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
962 if (unlikely(nsock->pending && nsock->pending != req)) { in nbd_handle_cmd()
975 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_handle_cmd()
980 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
1044 struct nbd_sock *nsock; in nbd_add_socket() local
1070 nsock = kzalloc(sizeof(*nsock), GFP_KERNEL); in nbd_add_socket()
1071 if (!nsock) { in nbd_add_socket()
1079 kfree(nsock); in nbd_add_socket()
1086 nsock->fallback_index = -1; in nbd_add_socket()
1087 nsock->dead = false; in nbd_add_socket()
1088 mutex_init(&nsock->tx_lock); in nbd_add_socket()
1089 nsock->sock = sock; in nbd_add_socket()
1090 nsock->pending = NULL; in nbd_add_socket()
1091 nsock->sent = 0; in nbd_add_socket()
1092 nsock->cookie = 0; in nbd_add_socket()
1093 socks[config->num_connections++] = nsock; in nbd_add_socket()
1124 struct nbd_sock *nsock = config->socks[i]; in nbd_reconnect_socket() local
1126 if (!nsock->dead) in nbd_reconnect_socket()
1129 mutex_lock(&nsock->tx_lock); in nbd_reconnect_socket()
1130 if (!nsock->dead) { in nbd_reconnect_socket()
1131 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1139 old = nsock->sock; in nbd_reconnect_socket()
1140 nsock->fallback_index = -1; in nbd_reconnect_socket()
1141 nsock->sock = sock; in nbd_reconnect_socket()
1142 nsock->dead = false; in nbd_reconnect_socket()
1146 nsock->cookie++; in nbd_reconnect_socket()
1147 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1204 struct nbd_sock *nsock = config->socks[i]; in send_disconnects() local
1207 mutex_lock(&nsock->tx_lock); in send_disconnects()
1212 mutex_unlock(&nsock->tx_lock); in send_disconnects()