Lines Matching refs:nsock
71 struct nbd_sock *nsock; member
305 static void nbd_mark_nsock_dead(struct nbd_device *nbd, struct nbd_sock *nsock, in nbd_mark_nsock_dead() argument
308 if (!nsock->dead && notify && !nbd_disconnected(nbd->config)) { in nbd_mark_nsock_dead()
317 if (!nsock->dead) { in nbd_mark_nsock_dead()
318 kernel_sock_shutdown(nsock->sock, SHUT_RDWR); in nbd_mark_nsock_dead()
329 nsock->dead = true; in nbd_mark_nsock_dead()
330 nsock->pending = NULL; in nbd_mark_nsock_dead()
331 nsock->sent = 0; in nbd_mark_nsock_dead()
409 struct nbd_sock *nsock = config->socks[i]; in sock_shutdown() local
410 mutex_lock(&nsock->tx_lock); in sock_shutdown()
411 nbd_mark_nsock_dead(nbd, nsock, 0); in sock_shutdown()
412 mutex_unlock(&nsock->tx_lock); in sock_shutdown()
493 struct nbd_sock *nsock = in nbd_xmit_timeout() local
495 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
502 if (cmd->cookie == nsock->cookie) in nbd_xmit_timeout()
503 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_xmit_timeout()
504 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
518 struct nbd_sock *nsock = config->socks[cmd->index]; in nbd_xmit_timeout() local
525 mutex_lock(&nsock->tx_lock); in nbd_xmit_timeout()
526 if (cmd->cookie != nsock->cookie) { in nbd_xmit_timeout()
528 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
533 mutex_unlock(&nsock->tx_lock); in nbd_xmit_timeout()
623 struct nbd_sock *nsock, in nbd_sched_pending_work() argument
631 nsock->pending = req; in nbd_sched_pending_work()
632 nsock->sent = sent; in nbd_sched_pending_work()
635 schedule_work(&nsock->work); in nbd_sched_pending_work()
647 struct nbd_sock *nsock = config->socks[index]; in nbd_send_cmd() local
656 int sent = nsock->sent, skip = 0; in nbd_send_cmd()
659 lockdep_assert_held(&nsock->tx_lock); in nbd_send_cmd()
697 cmd->cookie = nsock->cookie; in nbd_send_cmd()
723 nbd_sched_pending_work(nbd, nsock, cmd, sent); in nbd_send_cmd()
761 nbd_sched_pending_work(nbd, nsock, cmd, sent); in nbd_send_cmd()
782 nsock->pending = NULL; in nbd_send_cmd()
783 nsock->sent = 0; in nbd_send_cmd()
799 nbd_mark_nsock_dead(nbd, nsock, 1); in nbd_send_cmd()
807 struct nbd_sock *nsock = container_of(work, struct nbd_sock, work); in nbd_pending_cmd_work() local
808 struct request *req = nsock->pending; in nbd_pending_cmd_work()
820 mutex_lock(&nsock->tx_lock); in nbd_pending_cmd_work()
823 if (!nsock->pending) in nbd_pending_cmd_work()
835 mutex_unlock(&nsock->tx_lock); in nbd_pending_cmd_work()
975 struct nbd_sock *nsock = args->nsock; in recv_work() local
982 if (nbd_read_reply(nbd, nsock->sock, &reply)) in recv_work()
1017 mutex_lock(&nsock->tx_lock); in recv_work()
1018 nbd_mark_nsock_dead(nbd, nsock, 1); in recv_work()
1019 mutex_unlock(&nsock->tx_lock); in recv_work()
1059 struct nbd_sock *nsock = config->socks[index]; in find_fallback() local
1060 int fallback = nsock->fallback_index; in find_fallback()
1075 if (nsock->fallback_index < 0 || in find_fallback()
1076 nsock->fallback_index >= config->num_connections || in find_fallback()
1077 config->socks[nsock->fallback_index]->dead) { in find_fallback()
1087 nsock->fallback_index = new_index; in find_fallback()
1094 new_index = nsock->fallback_index; in find_fallback()
1119 struct nbd_sock *nsock; in nbd_handle_cmd() local
1139 nsock = config->socks[index]; in nbd_handle_cmd()
1140 mutex_lock(&nsock->tx_lock); in nbd_handle_cmd()
1141 if (nsock->dead) { in nbd_handle_cmd()
1144 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
1169 if (unlikely(nsock->pending && nsock->pending != req)) { in nbd_handle_cmd()
1176 mutex_unlock(&nsock->tx_lock); in nbd_handle_cmd()
1236 struct nbd_sock *nsock; in nbd_add_socket() local
1266 nsock = kzalloc(sizeof(*nsock), GFP_KERNEL); in nbd_add_socket()
1267 if (!nsock) { in nbd_add_socket()
1275 kfree(nsock); in nbd_add_socket()
1282 nsock->fallback_index = -1; in nbd_add_socket()
1283 nsock->dead = false; in nbd_add_socket()
1284 mutex_init(&nsock->tx_lock); in nbd_add_socket()
1285 nsock->sock = sock; in nbd_add_socket()
1286 nsock->pending = NULL; in nbd_add_socket()
1287 nsock->sent = 0; in nbd_add_socket()
1288 nsock->cookie = 0; in nbd_add_socket()
1289 INIT_WORK(&nsock->work, nbd_pending_cmd_work); in nbd_add_socket()
1290 socks[config->num_connections++] = nsock; in nbd_add_socket()
1321 struct nbd_sock *nsock = config->socks[i]; in nbd_reconnect_socket() local
1323 if (!nsock->dead) in nbd_reconnect_socket()
1326 mutex_lock(&nsock->tx_lock); in nbd_reconnect_socket()
1327 if (!nsock->dead) { in nbd_reconnect_socket()
1328 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1336 old = nsock->sock; in nbd_reconnect_socket()
1337 nsock->fallback_index = -1; in nbd_reconnect_socket()
1338 nsock->sock = sock; in nbd_reconnect_socket()
1339 nsock->dead = false; in nbd_reconnect_socket()
1343 args->nsock = nsock; in nbd_reconnect_socket()
1344 nsock->cookie++; in nbd_reconnect_socket()
1345 mutex_unlock(&nsock->tx_lock); in nbd_reconnect_socket()
1391 struct nbd_sock *nsock = config->socks[i]; in send_disconnects() local
1394 mutex_lock(&nsock->tx_lock); in send_disconnects()
1399 mutex_unlock(&nsock->tx_lock); in send_disconnects()
1515 args->nsock = config->socks[i]; in nbd_start_device()