Lines Matching defs:sock

100 #include <net/sock.h>
111 #include <trace/events/sock.h>
139 struct socket *sock = f->private_data;
140 const struct proto_ops *ops = READ_ONCE(sock->ops);
143 ops->show_fdinfo(m, sock);
436 * and file struct implicitly stored in sock->file.
450 * @sock: socket
454 * Returns the &file bound with @sock, implicitly storing it
455 * in sock->file. If dname is %NULL, sets to "".
457 * On failure @sock is released, and an ERR pointer is returned.
462 struct file *sock_alloc_file(struct socket *sock, int flags, const char *dname)
467 dname = sock->sk ? sock->sk->sk_prot_creator->name : "";
469 file = alloc_file_pseudo(SOCK_INODE(sock), sock_mnt, dname,
473 sock_release(sock);
478 sock->file = file;
479 file->private_data = sock;
480 stream_open(SOCK_INODE(sock), file);
485 static int sock_map_fd(struct socket *sock, int flags)
490 sock_release(sock);
494 newfile = sock_alloc_file(sock, flags, NULL);
536 struct socket *sock;
544 sock = sock_from_file(file);
545 if (!sock) {
549 return sock;
556 struct socket *sock;
560 sock = sock_from_file(f.file);
561 if (likely(sock)) {
563 return sock;
605 struct socket *sock = SOCKET_I(d_inode(dentry));
607 if (sock->sk)
608 sock->sk->sk_uid = iattr->ia_uid;
632 struct socket *sock;
638 sock = SOCKET_I(inode);
646 return sock;
650 static void __sock_release(struct socket *sock, struct inode *inode)
652 const struct proto_ops *ops = READ_ONCE(sock->ops);
659 ops->release(sock);
660 sock->sk = NULL;
663 sock->ops = NULL;
667 if (sock->wq.fasync_list)
670 if (!sock->file) {
671 iput(SOCK_INODE(sock));
674 sock->file = NULL;
679 * @sock: socket to close
685 void sock_release(struct socket *sock)
687 __sock_release(sock, NULL);
722 static noinline void call_trace_sock_send_length(struct sock *sk, int ret,
728 static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
730 int ret = INDIRECT_CALL_INET(READ_ONCE(sock->ops)->sendmsg, inet6_sendmsg,
731 inet_sendmsg, sock, msg,
736 call_trace_sock_send_length(sock->sk, ret, 0);
740 static int __sock_sendmsg(struct socket *sock, struct msghdr *msg)
742 int err = security_socket_sendmsg(sock, msg,
745 return err ?: sock_sendmsg_nosec(sock, msg);
749 * sock_sendmsg - send a message through @sock
750 * @sock: socket
753 * Sends @msg through @sock, passing through LSM.
756 int sock_sendmsg(struct socket *sock, struct msghdr *msg)
768 ret = __sock_sendmsg(sock, msg);
777 * kernel_sendmsg - send a message through @sock (kernel-space)
778 * @sock: socket
784 * Builds the message data with @vec and sends it through @sock.
788 int kernel_sendmsg(struct socket *sock, struct msghdr *msg,
792 return sock_sendmsg(sock, msg);
797 * kernel_sendmsg_locked - send a message through @sock (kernel-space)
798 * @sk: sock
804 * Builds the message data with @vec and sends it through @sock.
809 int kernel_sendmsg_locked(struct sock *sk, struct msghdr *msg,
812 struct socket *sock = sk->sk_socket;
813 const struct proto_ops *ops = READ_ONCE(sock->ops);
847 static ktime_t get_timestamp(struct sock *sk, struct sk_buff *skb, int *if_index)
895 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
988 void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk,
1005 static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk,
1013 static void sock_recv_mark(struct msghdr *msg, struct sock *sk,
1024 void __sock_recv_cmsgs(struct msghdr *msg, struct sock *sk,
1038 static noinline void call_trace_sock_recv_length(struct sock *sk, int ret, int flags)
1043 static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg,
1046 int ret = INDIRECT_CALL_INET(READ_ONCE(sock->ops)->recvmsg,
1048 inet_recvmsg, sock, msg,
1051 call_trace_sock_recv_length(sock->sk, ret, flags);
1056 * sock_recvmsg - receive a message from @sock
1057 * @sock: socket
1061 * Receives @msg from @sock, passing through LSM. Returns the total number
1064 int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags)
1066 int err = security_socket_recvmsg(sock, msg, msg_data_left(msg), flags);
1068 return err ?: sock_recvmsg_nosec(sock, msg, flags);
1074 * @sock: The socket to receive the message from
1088 int kernel_recvmsg(struct socket *sock, struct msghdr *msg,
1093 return sock_recvmsg(sock, msg, flags);
1101 struct socket *sock = file->private_data;
1104 ops = READ_ONCE(sock->ops);
1108 return ops->splice_read(sock, ppos, pipe, len, flags);
1113 struct socket *sock = file->private_data;
1116 ops = READ_ONCE(sock->ops);
1118 ops->splice_eof(sock);
1124 struct socket *sock = file->private_data;
1138 res = sock_recvmsg(sock, &msg, msg.msg_flags);
1146 struct socket *sock = file->private_data;
1157 if (sock->type == SOCK_SEQPACKET)
1160 res = __sock_sendmsg(sock, &msg);
1212 static long sock_do_ioctl(struct net *net, struct socket *sock,
1215 const struct proto_ops *ops = READ_ONCE(sock->ops);
1222 err = ops->ioctl(sock, cmd, arg);
1252 struct socket *sock;
1253 struct sock *sk;
1258 sock = file->private_data;
1259 ops = READ_ONCE(sock->ops);
1260 sk = sock->sk;
1284 err = f_setown(sock->file, pid, 1);
1288 err = put_user(f_getown(sock->file),
1321 err = ops->gettstamp(sock, argp,
1331 err = ops->gettstamp(sock, argp,
1341 err = sock_do_ioctl(net, sock, cmd, arg);
1363 struct socket *sock = NULL;
1369 sock = sock_alloc();
1370 if (!sock) {
1375 sock->type = type;
1376 err = security_socket_post_create(sock, family, type, protocol, 1);
1381 *res = sock;
1384 sock_release(sock);
1385 sock = NULL;
1393 struct socket *sock = file->private_data;
1394 const struct proto_ops *ops = READ_ONCE(sock->ops);
1400 if (sk_can_busy_loop(sock->sk)) {
1403 sk_busy_loop(sock->sk, 1);
1409 return ops->poll(file, sock, wait) | flag;
1414 struct socket *sock = file->private_data;
1416 return READ_ONCE(sock->ops)->mmap(file, sock, vma);
1438 struct socket *sock = filp->private_data;
1439 struct sock *sk = sock->sk;
1440 struct socket_wq *wq = &sock->wq;
1504 struct socket *sock;
1535 sock = sock_alloc();
1536 if (!sock) {
1542 sock->type = type;
1571 err = pf->create(net, sock, protocol, kern);
1579 if (!try_module_get(sock->ops->owner))
1587 err = security_socket_post_create(sock, family, type, protocol, kern);
1590 *res = sock;
1597 sock->ops = NULL;
1600 sock_release(sock);
1646 struct socket *sock;
1659 retval = sock_create(family, type, protocol, &sock);
1663 return sock;
1668 struct socket *sock;
1671 sock = __sys_socket_create(family, type, protocol);
1672 if (IS_ERR(sock))
1673 return ERR_CAST(sock);
1679 return sock_alloc_file(sock, flags, NULL);
1707 struct socket *sock;
1710 sock = __sys_socket_create(family, type,
1712 if (IS_ERR(sock))
1713 return PTR_ERR(sock);
1719 return sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
1839 struct socket *sock;
1843 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1844 if (sock) {
1847 err = security_socket_bind(sock,
1851 err = READ_ONCE(sock->ops)->bind(sock,
1855 fput_light(sock->file, fput_needed);
1873 struct socket *sock;
1877 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1878 if (sock) {
1879 somaxconn = READ_ONCE(sock_net(sock->sk)->core.sysctl_somaxconn);
1883 err = security_socket_listen(sock, backlog);
1885 err = READ_ONCE(sock->ops)->listen(sock, backlog);
1887 fput_light(sock->file, fput_needed);
1901 struct socket *sock, *newsock;
1907 sock = sock_from_file(file);
1908 if (!sock)
1914 ops = READ_ONCE(sock->ops);
1916 newsock->type = sock->type;
1920 * We don't need try_module_get here, as the listening socket (sock)
1921 * has the protocol module (sock->ops->owner) held.
1925 newfile = sock_alloc_file(newsock, flags, sock->sk->sk_prot_creator->name);
1929 err = security_socket_accept(sock, newsock);
1933 err = ops->accept(sock, newsock, sock->file->f_flags | file_flags,
2038 struct socket *sock;
2041 sock = sock_from_file(file);
2042 if (!sock) {
2048 security_socket_connect(sock, (struct sockaddr *)address, addrlen);
2052 err = READ_ONCE(sock->ops)->connect(sock, (struct sockaddr *)address,
2053 addrlen, sock->file->f_flags | file_flags);
2090 struct socket *sock;
2094 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2095 if (!sock)
2098 err = security_socket_getsockname(sock);
2102 err = READ_ONCE(sock->ops)->getname(sock, (struct sockaddr *)&address, 0);
2109 fput_light(sock->file, fput_needed);
2128 struct socket *sock;
2132 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2133 if (sock != NULL) {
2134 const struct proto_ops *ops = READ_ONCE(sock->ops);
2136 err = security_socket_getpeername(sock);
2138 fput_light(sock->file, fput_needed);
2142 err = ops->getname(sock, (struct sockaddr *)&address, 1);
2147 fput_light(sock->file, fput_needed);
2166 struct socket *sock;
2176 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2177 if (!sock)
2193 if (sock->file->f_flags & O_NONBLOCK)
2196 err = __sock_sendmsg(sock, &msg);
2199 fput_light(sock->file, fput_needed);
2234 struct socket *sock;
2242 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2243 if (!sock)
2246 if (sock->file->f_flags & O_NONBLOCK)
2248 err = sock_recvmsg(sock, &msg, flags);
2257 fput_light(sock->file, fput_needed);
2279 static bool sock_use_custom_sol_socket(const struct socket *sock)
2281 return test_bit(SOCK_CUSTOM_SOCKOPT, &sock->flags);
2295 struct socket *sock;
2300 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2301 if (!sock)
2304 err = security_socket_setsockopt(sock, level, optname);
2309 err = BPF_CGROUP_RUN_PROG_SETSOCKOPT(sock->sk, &level, &optname,
2321 ops = READ_ONCE(sock->ops);
2322 if (level == SOL_SOCKET && !sock_use_custom_sol_socket(sock))
2323 err = sock_setsockopt(sock, level, optname, optval, optlen);
2327 err = ops->setsockopt(sock, level, optname, optval,
2331 fput_light(sock->file, fput_needed);
2354 struct socket *sock;
2356 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2357 if (!sock)
2360 err = security_socket_getsockopt(sock, level, optname);
2367 ops = READ_ONCE(sock->ops);
2369 err = sock_getsockopt(sock, level, optname, optval, optlen);
2373 err = ops->getsockopt(sock, level, optname, optval,
2377 err = BPF_CGROUP_RUN_PROG_GETSOCKOPT(sock->sk, level, optname,
2381 fput_light(sock->file, fput_needed);
2395 int __sys_shutdown_sock(struct socket *sock, int how)
2399 err = security_socket_shutdown(sock, how);
2401 err = READ_ONCE(sock->ops)->shutdown(sock, how);
2409 struct socket *sock;
2411 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2412 if (sock != NULL) {
2413 err = __sys_shutdown_sock(sock, how);
2414 fput_light(sock->file, fput_needed);
2503 static int ____sys_sendmsg(struct socket *sock, struct msghdr *msg_sys,
2522 cmsghdr_from_user_compat_to_kern(msg_sys, sock->sk, ctl,
2532 ctl_buf = sock_kmalloc(sock->sk, ctl_len, GFP_KERNEL);
2545 if (sock->file->f_flags & O_NONBLOCK)
2557 err = sock_sendmsg_nosec(sock, msg_sys);
2560 err = __sock_sendmsg(sock, msg_sys);
2574 sock_kfree_s(sock->sk, ctl_buf, ctl_len);
2599 static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
2614 err = ____sys_sendmsg(sock, msg_sys, flags, used_address,
2623 long __sys_sendmsg_sock(struct socket *sock, struct msghdr *msg,
2626 return ____sys_sendmsg(sock, msg, flags, NULL, 0);
2634 struct socket *sock;
2639 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2640 if (!sock)
2643 err = ___sys_sendmsg(sock, msg, &msg_sys, flags, NULL, 0);
2645 fput_light(sock->file, fput_needed);
2663 struct socket *sock;
2678 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2679 if (!sock)
2693 err = ___sys_sendmsg(sock, (struct user_msghdr __user *)compat_entry,
2700 err = ___sys_sendmsg(sock,
2717 fput_light(sock->file, fput_needed);
2753 static int ____sys_recvmsg(struct socket *sock, struct msghdr *msg_sys,
2773 if (sock->file->f_flags & O_NONBLOCK)
2777 err = sock_recvmsg_nosec(sock, msg_sys, flags);
2779 err = sock_recvmsg(sock, msg_sys, flags);
2809 static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
2821 err = ____sys_recvmsg(sock, msg_sys, msg, uaddr, flags, nosec);
2830 long __sys_recvmsg_sock(struct socket *sock, struct msghdr *msg,
2834 return ____sys_recvmsg(sock, msg, umsg, uaddr, flags, 0);
2842 struct socket *sock;
2847 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2848 if (!sock)
2851 err = ___sys_recvmsg(sock, msg, &msg_sys, flags, 0);
2853 fput_light(sock->file, fput_needed);
2873 struct socket *sock;
2887 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2888 if (!sock)
2892 err = sock_error(sock->sk);
2907 err = ___sys_recvmsg(sock, (struct user_msghdr __user *)compat_entry,
2915 err = ___sys_recvmsg(sock,
2962 * sock is non block and there aren't enough datagrams...
2971 WRITE_ONCE(sock->sk->sk_err, -err);
2974 fput_light(sock->file, fput_needed);
3387 static int compat_sock_ioctl_trans(struct file *file, struct socket *sock,
3391 struct sock *sk = sock->sk;
3403 ops = READ_ONCE(sock->ops);
3406 return ops->gettstamp(sock, argp, cmd == SIOCGSTAMP_OLD,
3478 return sock_do_ioctl(net, sock, cmd, arg);
3487 struct socket *sock = file->private_data;
3488 const struct proto_ops *ops = READ_ONCE(sock->ops);
3490 struct sock *sk;
3493 sk = sock->sk;
3497 ret = ops->compat_ioctl(sock, cmd, arg);
3504 ret = compat_sock_ioctl_trans(file, sock, cmd, arg);
3512 * @sock: socket
3519 int kernel_bind(struct socket *sock, struct sockaddr *addr, int addrlen)
3525 return READ_ONCE(sock->ops)->bind(sock, (struct sockaddr *)&address,
3532 * @sock: socket
3538 int kernel_listen(struct socket *sock, int backlog)
3540 return READ_ONCE(sock->ops)->listen(sock, backlog);
3546 * @sock: listening socket
3555 int kernel_accept(struct socket *sock, struct socket **newsock, int flags)
3557 struct sock *sk = sock->sk;
3558 const struct proto_ops *ops = READ_ONCE(sock->ops);
3566 err = ops->accept(sock, *newsock, flags, true);
3583 * @sock: socket
3594 int kernel_connect(struct socket *sock, struct sockaddr *addr, int addrlen,
3601 return READ_ONCE(sock->ops)->connect(sock, (struct sockaddr *)&address,
3608 * @sock: socket
3615 int kernel_getsockname(struct socket *sock, struct sockaddr *addr)
3617 return READ_ONCE(sock->ops)->getname(sock, addr, 0);
3623 * @sock: socket
3630 int kernel_getpeername(struct socket *sock, struct sockaddr *addr)
3632 return READ_ONCE(sock->ops)->getname(sock, addr, 1);
3638 * @sock: socket
3644 int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how)
3646 return READ_ONCE(sock->ops)->shutdown(sock, how);
3660 u32 kernel_sock_ip_overhead(struct sock *sk)