Lines Matching refs:sock
69 struct socket *sock; /* NULL if not connected */ member
120 void (*sk_error_report)(struct sock *);
121 void (*sk_data_ready)(struct sock *);
122 void (*sk_state_change)(struct sock *);
123 void (*sk_write_space)(struct sock *);
402 static void lowcomms_data_ready(struct sock *sk) in lowcomms_data_ready()
413 static void lowcomms_write_space(struct sock *sk) in lowcomms_write_space()
422 clear_bit(SOCK_NOSPACE, &con->sock->flags); in lowcomms_write_space()
425 con->sock->sk->sk_write_pending--; in lowcomms_write_space()
426 clear_bit(SOCKWQ_ASYNC_NOSPACE, &con->sock->flags); in lowcomms_write_space()
442 static void lowcomms_state_change(struct sock *sk) in lowcomms_state_change()
471 static void lowcomms_error_report(struct sock *sk) in lowcomms_error_report()
474 void (*orig_report)(struct sock *) = NULL; in lowcomms_error_report()
518 static void save_listen_callbacks(struct socket *sock) in save_listen_callbacks() argument
520 struct sock *sk = sock->sk; in save_listen_callbacks()
528 static void restore_callbacks(struct socket *sock) in restore_callbacks() argument
530 struct sock *sk = sock->sk; in restore_callbacks()
542 static void add_sock(struct socket *sock, struct connection *con) in add_sock() argument
544 struct sock *sk = sock->sk; in add_sock()
547 con->sock = sock; in add_sock()
594 if (con->sock) { in close_connection()
595 restore_callbacks(con->sock); in close_connection()
596 sock_release(con->sock); in close_connection()
597 con->sock = NULL; in close_connection()
618 if (!con->sock) { in shutdown_connection()
624 ret = kernel_sock_shutdown(con->sock, SHUT_WR); in shutdown_connection()
685 if (con->sock == NULL) { in receive_from_sock()
711 ret = kernel_recvmsg(con->sock, &msg, &iov, 1, iov.iov_len, in receive_from_sock()
783 if (!con->sock) { in accept_from_sock()
788 result = kernel_accept(con->sock, &newsock, O_NONBLOCK); in accept_from_sock()
828 if (newcon->sock) { in accept_from_sock()
940 result = kernel_bind(con->sock, addr, addr_len); in sctp_bind_addrs()
942 result = sock_bind_add(con->sock->sk, addr, addr_len); in sctp_bind_addrs()
963 struct socket *sock; in sctp_connect_to_sock() local
979 if (con->sock) { in sctp_connect_to_sock()
993 SOCK_STREAM, IPPROTO_SCTP, &sock); in sctp_connect_to_sock()
997 sock_set_mark(sock->sk, mark); in sctp_connect_to_sock()
1001 add_sock(sock, con); in sctp_connect_to_sock()
1012 sctp_sock_set_nodelay(sock->sk); in sctp_connect_to_sock()
1019 sock_set_sndtimeo(sock->sk, 5); in sctp_connect_to_sock()
1020 result = sock->ops->connect(sock, (struct sockaddr *)&daddr, addr_len, in sctp_connect_to_sock()
1022 sock_set_sndtimeo(sock->sk, 0); in sctp_connect_to_sock()
1030 con->sock = NULL; in sctp_connect_to_sock()
1031 sock_release(sock); in sctp_connect_to_sock()
1060 struct socket *sock = NULL; in tcp_connect_to_sock() local
1076 if (con->sock) in tcp_connect_to_sock()
1081 SOCK_STREAM, IPPROTO_TCP, &sock); in tcp_connect_to_sock()
1085 sock_set_mark(sock->sk, mark); in tcp_connect_to_sock()
1097 add_sock(sock, con); in tcp_connect_to_sock()
1103 result = sock->ops->bind(sock, (struct sockaddr *) &src_addr, in tcp_connect_to_sock()
1115 tcp_sock_set_nodelay(sock->sk); in tcp_connect_to_sock()
1117 result = sock->ops->connect(sock, (struct sockaddr *)&saddr, addr_len, in tcp_connect_to_sock()
1125 if (con->sock) { in tcp_connect_to_sock()
1126 sock_release(con->sock); in tcp_connect_to_sock()
1127 con->sock = NULL; in tcp_connect_to_sock()
1128 } else if (sock) { in tcp_connect_to_sock()
1129 sock_release(sock); in tcp_connect_to_sock()
1155 struct socket *sock = NULL; in tcp_create_listen_sock() local
1166 SOCK_STREAM, IPPROTO_TCP, &sock); in tcp_create_listen_sock()
1172 sock_set_mark(sock->sk, dlm_config.ci_mark); in tcp_create_listen_sock()
1175 tcp_sock_set_nodelay(sock->sk); in tcp_create_listen_sock()
1177 sock_set_reuseaddr(sock->sk); in tcp_create_listen_sock()
1179 write_lock_bh(&sock->sk->sk_callback_lock); in tcp_create_listen_sock()
1180 sock->sk->sk_user_data = con; in tcp_create_listen_sock()
1181 save_listen_callbacks(sock); in tcp_create_listen_sock()
1184 write_unlock_bh(&sock->sk->sk_callback_lock); in tcp_create_listen_sock()
1188 result = sock->ops->bind(sock, (struct sockaddr *) saddr, addr_len); in tcp_create_listen_sock()
1191 sock_release(sock); in tcp_create_listen_sock()
1192 sock = NULL; in tcp_create_listen_sock()
1193 con->sock = NULL; in tcp_create_listen_sock()
1196 sock_set_keepalive(sock->sk); in tcp_create_listen_sock()
1198 result = sock->ops->listen(sock, 5); in tcp_create_listen_sock()
1201 sock_release(sock); in tcp_create_listen_sock()
1202 sock = NULL; in tcp_create_listen_sock()
1207 return sock; in tcp_create_listen_sock()
1239 struct socket *sock = NULL; in sctp_listen_for_all() local
1249 SOCK_STREAM, IPPROTO_SCTP, &sock); in sctp_listen_for_all()
1255 sock_set_rcvbuf(sock->sk, NEEDED_RMEM); in sctp_listen_for_all()
1256 sock_set_mark(sock->sk, dlm_config.ci_mark); in sctp_listen_for_all()
1257 sctp_sock_set_nodelay(sock->sk); in sctp_listen_for_all()
1259 write_lock_bh(&sock->sk->sk_callback_lock); in sctp_listen_for_all()
1261 sock->sk->sk_user_data = con; in sctp_listen_for_all()
1262 save_listen_callbacks(sock); in sctp_listen_for_all()
1263 con->sock = sock; in sctp_listen_for_all()
1264 con->sock->sk->sk_data_ready = lowcomms_data_ready; in sctp_listen_for_all()
1268 write_unlock_bh(&sock->sk->sk_callback_lock); in sctp_listen_for_all()
1274 result = sock->ops->listen(sock, 5); in sctp_listen_for_all()
1283 sock_release(sock); in sctp_listen_for_all()
1284 con->sock = NULL; in sctp_listen_for_all()
1291 struct socket *sock = NULL; in tcp_listen_for_all() local
1307 sock = tcp_create_listen_sock(con, dlm_local_addr[0]); in tcp_listen_for_all()
1308 if (sock) { in tcp_listen_for_all()
1309 add_sock(sock, con); in tcp_listen_for_all()
1417 if (con->sock == NULL) in send_to_sock()
1434 ret = kernel_sendpage(con->sock, e->page, offset, len, in send_to_sock()
1438 test_bit(SOCKWQ_ASYNC_NOSPACE, &con->sock->flags) && in send_to_sock()
1443 set_bit(SOCK_NOSPACE, &con->sock->flags); in send_to_sock()
1444 con->sock->sk->sk_write_pending++; in send_to_sock()
1538 if (con->sock == NULL) /* not mutex protected so check it inside too */ in process_send_sockets()
1578 if (con->sock && con->sock->sk) { in _stop_conn()
1579 write_lock_bh(&con->sock->sk->sk_callback_lock); in _stop_conn()
1580 con->sock->sk->sk_user_data = NULL; in _stop_conn()
1581 write_unlock_bh(&con->sock->sk->sk_callback_lock); in _stop_conn()