Lines Matching refs:nsock
240 static void nbd_mark_nsock_dead(struct nbd_device *nbd, struct nbd_sock *nsock, in nbd_mark_nsock_dead() argument
243 if (!nsock->dead && notify && !nbd_disconnected(nbd->config)) { in nbd_mark_nsock_dead()
252 if (!nsock->dead) { in nbd_mark_nsock_dead()
253 kernel_sock_shutdown(nsock->sock, SHUT_RDWR); in nbd_mark_nsock_dead()
264 nsock->dead = true; in nbd_mark_nsock_dead()
265 nsock->pending = NULL; in nbd_mark_nsock_dead()
266 nsock->sent = 0; in nbd_mark_nsock_dead()
334 struct nbd_sock *nsock = config->socks[i]; in sock_shutdown() local
335 mutex_lock(&nsock->tx_lock); in sock_shutdown()
336 nbd_mark_nsock_dead(nbd, nsock, 0); in sock_shutdown()
337 mutex_unlock(&nsock->tx_lock); in sock_shutdown()
369 struct nbd_sock *nsock = in nbd_xmit_timeout() local
371 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
378 if (cmd->cookie == nsock->cookie) in nbd_xmit_timeout()
379 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_xmit_timeout()
380 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
464 struct nbd_sock *nsock = config->socks[index]; in nbd_send_cmd() local
474 int sent = nsock->sent, skip = 0; in nbd_send_cmd()
519 cmd->cookie = nsock->cookie; in nbd_send_cmd()
541 nsock->pending = req; in nbd_send_cmd()
542 nsock->sent = sent; in nbd_send_cmd()
584 nsock->pending = req; in nbd_send_cmd()
585 nsock->sent = sent; in nbd_send_cmd()
606 nsock->pending = NULL; in nbd_send_cmd()
607 nsock->sent = 0; in nbd_send_cmd()
723 struct nbd_sock *nsock = config->socks[args->index]; in recv_work() local
725 mutex_lock(&nsock->tx_lock); in recv_work()
726 nbd_mark_nsock_dead(nbd, nsock, 1); in recv_work()
727 mutex_unlock(&nsock->tx_lock); in recv_work()
759 struct nbd_sock *nsock = config->socks[index]; in find_fallback() local
760 int fallback = nsock->fallback_index; in find_fallback()
775 if (nsock->fallback_index < 0 || in find_fallback()
776 nsock->fallback_index >= config->num_connections || in find_fallback()
777 config->socks[nsock->fallback_index]->dead) { in find_fallback()
787 nsock->fallback_index = new_index; in find_fallback()
794 new_index = nsock->fallback_index; in find_fallback()
815 struct nbd_sock *nsock; in nbd_handle_cmd() local
835 nsock = config->socks[index]; in nbd_handle_cmd()
836 mutex_lock(&nsock->tx_lock); in nbd_handle_cmd()
837 if (nsock->dead) { in nbd_handle_cmd()
840 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
866 if (unlikely(nsock->pending && nsock->pending != req)) { in nbd_handle_cmd()
879 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_handle_cmd()
884 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
928 struct nbd_sock *nsock; in nbd_add_socket() local
954 nsock = kzalloc(sizeof(struct nbd_sock), GFP_KERNEL); in nbd_add_socket()
955 if (!nsock) { in nbd_add_socket()
962 nsock->fallback_index = -1; in nbd_add_socket()
963 nsock->dead = false; in nbd_add_socket()
964 mutex_init(&nsock->tx_lock); in nbd_add_socket()
965 nsock->sock = sock; in nbd_add_socket()
966 nsock->pending = NULL; in nbd_add_socket()
967 nsock->sent = 0; in nbd_add_socket()
968 nsock->cookie = 0; in nbd_add_socket()
969 socks[config->num_connections++] = nsock; in nbd_add_socket()
994 struct nbd_sock *nsock = config->socks[i]; in nbd_reconnect_socket() local
996 if (!nsock->dead) in nbd_reconnect_socket()
999 mutex_lock(&nsock->tx_lock); in nbd_reconnect_socket()
1000 if (!nsock->dead) { in nbd_reconnect_socket()
1001 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1009 old = nsock->sock; in nbd_reconnect_socket()
1010 nsock->fallback_index = -1; in nbd_reconnect_socket()
1011 nsock->sock = sock; in nbd_reconnect_socket()
1012 nsock->dead = false; in nbd_reconnect_socket()
1016 nsock->cookie++; in nbd_reconnect_socket()
1017 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1074 struct nbd_sock *nsock = config->socks[i]; in send_disconnects() local
1077 mutex_lock(&nsock->tx_lock); in send_disconnects()
1082 mutex_unlock(&nsock->tx_lock); in send_disconnects()