Lines Matching defs:sock

97 #include <net/sock.h>
135 struct socket *sock = f->private_data;
137 if (sock->ops->show_fdinfo)
138 sock->ops->show_fdinfo(m, sock);
380 * and file struct implicitly stored in sock->file.
394 * @sock: socket
398 * Returns the &file bound with @sock, implicitly storing it
399 * in sock->file. If dname is %NULL, sets to "".
404 struct file *sock_alloc_file(struct socket *sock, int flags, const char *dname)
409 dname = sock->sk ? sock->sk->sk_prot_creator->name : "";
411 file = alloc_file_pseudo(SOCK_INODE(sock), sock_mnt, dname,
415 sock_release(sock);
419 sock->file = file;
420 file->private_data = sock;
421 stream_open(SOCK_INODE(sock), file);
426 static int sock_map_fd(struct socket *sock, int flags)
431 sock_release(sock);
435 newfile = sock_alloc_file(sock, flags, NULL);
479 struct socket *sock;
487 sock = sock_from_file(file, err);
488 if (!sock)
490 return sock;
497 struct socket *sock;
501 sock = sock_from_file(f.file, err);
502 if (likely(sock)) {
504 return sock;
544 struct socket *sock = SOCKET_I(d_inode(dentry));
546 if (sock->sk)
547 sock->sk->sk_uid = iattr->ia_uid;
571 struct socket *sock;
577 sock = SOCKET_I(inode);
585 return sock;
589 static void __sock_release(struct socket *sock, struct inode *inode)
591 if (sock->ops) {
592 struct module *owner = sock->ops->owner;
596 sock->ops->release(sock);
597 sock->sk = NULL;
600 sock->ops = NULL;
604 if (sock->wq.fasync_list)
607 if (!sock->file) {
608 iput(SOCK_INODE(sock));
611 sock->file = NULL;
616 * @sock: socket to close
622 void sock_release(struct socket *sock)
624 __sock_release(sock, NULL);
649 static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
651 int ret = INDIRECT_CALL_INET(sock->ops->sendmsg, inet6_sendmsg,
652 inet_sendmsg, sock, msg,
658 static int __sock_sendmsg(struct socket *sock, struct msghdr *msg)
660 int err = security_socket_sendmsg(sock, msg,
663 return err ?: sock_sendmsg_nosec(sock, msg);
667 * sock_sendmsg - send a message through @sock
668 * @sock: socket
671 * Sends @msg through @sock, passing through LSM.
674 int sock_sendmsg(struct socket *sock, struct msghdr *msg)
686 ret = __sock_sendmsg(sock, msg);
695 * kernel_sendmsg - send a message through @sock (kernel-space)
696 * @sock: socket
702 * Builds the message data with @vec and sends it through @sock.
706 int kernel_sendmsg(struct socket *sock, struct msghdr *msg,
710 return sock_sendmsg(sock, msg);
715 * kernel_sendmsg_locked - send a message through @sock (kernel-space)
716 * @sk: sock
722 * Builds the message data with @vec and sends it through @sock.
727 int kernel_sendmsg_locked(struct sock *sk, struct msghdr *msg,
730 struct socket *sock = sk->sk_socket;
732 if (!sock->ops->sendmsg_locked)
737 return sock->ops->sendmsg_locked(sk, msg, msg_data_left(msg));
788 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
865 void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk,
881 static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk,
889 void __sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
901 static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg,
904 return INDIRECT_CALL_INET(sock->ops->recvmsg, inet6_recvmsg,
905 inet_recvmsg, sock, msg, msg_data_left(msg),
910 * sock_recvmsg - receive a message from @sock
911 * @sock: socket
915 * Receives @msg from @sock, passing through LSM. Returns the total number
918 int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags)
920 int err = security_socket_recvmsg(sock, msg, msg_data_left(msg), flags);
922 return err ?: sock_recvmsg_nosec(sock, msg, flags);
928 * @sock: The socket to receive the message from
942 int kernel_recvmsg(struct socket *sock, struct msghdr *msg,
947 return sock_recvmsg(sock, msg, flags);
954 struct socket *sock;
957 sock = file->private_data;
963 return kernel_sendpage(sock, page, offset, size, flags);
970 struct socket *sock = file->private_data;
972 if (unlikely(!sock->ops->splice_read))
975 return sock->ops->splice_read(sock, ppos, pipe, len, flags);
981 struct socket *sock = file->private_data;
995 res = sock_recvmsg(sock, &msg, msg.msg_flags);
1003 struct socket *sock = file->private_data;
1014 if (sock->type == SOCK_SEQPACKET)
1017 res = __sock_sendmsg(sock, &msg);
1060 static long sock_do_ioctl(struct net *net, struct socket *sock,
1066 err = sock->ops->ioctl(sock, cmd, arg);
1106 struct socket *sock;
1107 struct sock *sk;
1112 sock = file->private_data;
1113 sk = sock->sk;
1136 err = f_setown(sock->file, pid, 1);
1140 err = put_user(f_getown(sock->file),
1187 if (!sock->ops->gettstamp) {
1191 err = sock->ops->gettstamp(sock, argp,
1197 if (!sock->ops->gettstamp) {
1201 err = sock->ops->gettstamp(sock, argp,
1206 err = sock_do_ioctl(net, sock, cmd, arg);
1228 struct socket *sock = NULL;
1234 sock = sock_alloc();
1235 if (!sock) {
1240 sock->type = type;
1241 err = security_socket_post_create(sock, family, type, protocol, 1);
1246 *res = sock;
1249 sock_release(sock);
1250 sock = NULL;
1258 struct socket *sock = file->private_data;
1261 if (!sock->ops->poll)
1264 if (sk_can_busy_loop(sock->sk)) {
1267 sk_busy_loop(sock->sk, 1);
1273 return sock->ops->poll(file, sock, wait) | flag;
1278 struct socket *sock = file->private_data;
1280 return sock->ops->mmap(file, sock, vma);
1302 struct socket *sock = filp->private_data;
1303 struct sock *sk = sock->sk;
1304 struct socket_wq *wq = &sock->wq;
1368 struct socket *sock;
1399 sock = sock_alloc();
1400 if (!sock) {
1406 sock->type = type;
1435 err = pf->create(net, sock, protocol, kern);
1443 if (!try_module_get(sock->ops->owner))
1451 err = security_socket_post_create(sock, family, type, protocol, kern);
1454 *res = sock;
1461 sock->ops = NULL;
1464 sock_release(sock);
1511 struct socket *sock;
1528 retval = sock_create(family, type, protocol, &sock);
1532 return sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
1652 struct socket *sock;
1656 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1657 if (sock) {
1660 err = security_socket_bind(sock,
1664 err = sock->ops->bind(sock,
1668 fput_light(sock->file, fput_needed);
1686 struct socket *sock;
1690 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1691 if (sock) {
1692 somaxconn = READ_ONCE(sock_net(sock->sk)->core.sysctl_somaxconn);
1696 err = security_socket_listen(sock, backlog);
1698 err = sock->ops->listen(sock, backlog);
1700 fput_light(sock->file, fput_needed);
1714 struct socket *sock, *newsock;
1719 sock = sock_from_file(file, &err);
1720 if (!sock)
1727 newsock->type = sock->type;
1728 newsock->ops = sock->ops;
1731 * We don't need try_module_get here, as the listening socket (sock)
1732 * has the protocol module (sock->ops->owner) held.
1736 newfile = sock_alloc_file(newsock, flags, sock->sk->sk_prot_creator->name);
1740 err = security_socket_accept(sock, newsock);
1744 err = sock->ops->accept(sock, newsock, sock->file->f_flags | file_flags,
1853 struct socket *sock;
1856 sock = sock_from_file(file, &err);
1857 if (!sock)
1861 security_socket_connect(sock, (struct sockaddr *)address, addrlen);
1865 err = sock->ops->connect(sock, (struct sockaddr *)address, addrlen,
1866 sock->file->f_flags | file_flags);
1903 struct socket *sock;
1907 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1908 if (!sock)
1911 err = security_socket_getsockname(sock);
1915 err = sock->ops->getname(sock, (struct sockaddr *)&address, 0);
1922 fput_light(sock->file, fput_needed);
1941 struct socket *sock;
1945 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1946 if (sock != NULL) {
1947 err = security_socket_getpeername(sock);
1949 fput_light(sock->file, fput_needed);
1953 err = sock->ops->getname(sock, (struct sockaddr *)&address, 1);
1958 fput_light(sock->file, fput_needed);
1977 struct socket *sock;
1987 sock = sockfd_lookup_light(fd, &err, &fput_needed);
1988 if (!sock)
2002 if (sock->file->f_flags & O_NONBLOCK)
2005 err = __sock_sendmsg(sock, &msg);
2008 fput_light(sock->file, fput_needed);
2038 struct socket *sock;
2048 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2049 if (!sock)
2060 if (sock->file->f_flags & O_NONBLOCK)
2062 err = sock_recvmsg(sock, &msg, flags);
2071 fput_light(sock->file, fput_needed);
2093 static bool sock_use_custom_sol_socket(const struct socket *sock)
2095 const struct sock *sk = sock->sk;
2097 /* Use sock->ops->setsockopt() for MPTCP */
2114 struct socket *sock;
2119 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2120 if (!sock)
2123 err = security_socket_setsockopt(sock, level, optname);
2128 err = BPF_CGROUP_RUN_PROG_SETSOCKOPT(sock->sk, &level, &optname,
2140 if (level == SOL_SOCKET && !sock_use_custom_sol_socket(sock))
2141 err = sock_setsockopt(sock, level, optname, optval, optlen);
2142 else if (unlikely(!sock->ops->setsockopt))
2145 err = sock->ops->setsockopt(sock, level, optname, optval,
2149 fput_light(sock->file, fput_needed);
2170 struct socket *sock;
2173 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2174 if (!sock)
2177 err = security_socket_getsockopt(sock, level, optname);
2185 err = sock_getsockopt(sock, level, optname, optval, optlen);
2186 else if (unlikely(!sock->ops->getsockopt))
2189 err = sock->ops->getsockopt(sock, level, optname, optval,
2193 err = BPF_CGROUP_RUN_PROG_GETSOCKOPT(sock->sk, level, optname,
2197 fput_light(sock->file, fput_needed);
2211 int __sys_shutdown_sock(struct socket *sock, int how)
2215 err = security_socket_shutdown(sock, how);
2217 err = sock->ops->shutdown(sock, how);
2225 struct socket *sock;
2227 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2228 if (sock != NULL) {
2229 err = __sys_shutdown_sock(sock, how);
2230 fput_light(sock->file, fput_needed);
2322 static int ____sys_sendmsg(struct socket *sock, struct msghdr *msg_sys,
2341 cmsghdr_from_user_compat_to_kern(msg_sys, sock->sk, ctl,
2351 ctl_buf = sock_kmalloc(sock->sk, ctl_len, GFP_KERNEL);
2363 if (sock->file->f_flags & O_NONBLOCK)
2375 err = sock_sendmsg_nosec(sock, msg_sys);
2378 err = __sock_sendmsg(sock, msg_sys);
2392 sock_kfree_s(sock->sk, ctl_buf, ctl_len);
2417 static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
2432 err = ____sys_sendmsg(sock, msg_sys, flags, used_address,
2441 long __sys_sendmsg_sock(struct socket *sock, struct msghdr *msg,
2444 return ____sys_sendmsg(sock, msg, flags, NULL, 0);
2452 struct socket *sock;
2457 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2458 if (!sock)
2461 err = ___sys_sendmsg(sock, msg, &msg_sys, flags, NULL, 0);
2463 fput_light(sock->file, fput_needed);
2481 struct socket *sock;
2496 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2497 if (!sock)
2511 err = ___sys_sendmsg(sock, (struct user_msghdr __user *)compat_entry,
2518 err = ___sys_sendmsg(sock,
2535 fput_light(sock->file, fput_needed);
2571 static int ____sys_recvmsg(struct socket *sock, struct msghdr *msg_sys,
2591 if (sock->file->f_flags & O_NONBLOCK)
2595 err = sock_recvmsg_nosec(sock, msg_sys, flags);
2597 err = sock_recvmsg(sock, msg_sys, flags);
2627 static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
2639 err = ____sys_recvmsg(sock, msg_sys, msg, uaddr, flags, nosec);
2648 long __sys_recvmsg_sock(struct socket *sock, struct msghdr *msg,
2652 return ____sys_recvmsg(sock, msg, umsg, uaddr, flags, 0);
2660 struct socket *sock;
2665 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2666 if (!sock)
2669 err = ___sys_recvmsg(sock, msg, &msg_sys, flags, 0);
2671 fput_light(sock->file, fput_needed);
2691 struct socket *sock;
2705 sock = sockfd_lookup_light(fd, &err, &fput_needed);
2706 if (!sock)
2710 err = sock_error(sock->sk);
2725 err = ___sys_recvmsg(sock, (struct user_msghdr __user *)compat_entry,
2733 err = ___sys_recvmsg(sock,
2780 * sock is non block and there aren't enough datagrams...
2789 WRITE_ONCE(sock->sk->sk_err, -err);
2792 fput_light(sock->file, fput_needed);
3184 static int compat_ifreq_ioctl(struct net *net, struct socket *sock,
3205 err = sock_do_ioctl(net, sock, cmd, (unsigned long)uifr);
3281 static int compat_sock_ioctl_trans(struct file *file, struct socket *sock,
3285 struct sock *sk = sock->sk;
3304 if (!sock->ops->gettstamp)
3306 return sock->ops->gettstamp(sock, argp, cmd == SIOCGSTAMP_OLD,
3369 return compat_ifreq_ioctl(net, sock, cmd, argp);
3377 return sock_do_ioctl(net, sock, cmd, arg);
3386 struct socket *sock = file->private_data;
3388 struct sock *sk;
3391 sk = sock->sk;
3394 if (sock->ops->compat_ioctl)
3395 ret = sock->ops->compat_ioctl(sock, cmd, arg);
3402 ret = compat_sock_ioctl_trans(file, sock, cmd, arg);
3410 * @sock: socket
3417 int kernel_bind(struct socket *sock, struct sockaddr *addr, int addrlen)
3423 return sock->ops->bind(sock, (struct sockaddr *)&address, addrlen);
3429 * @sock: socket
3435 int kernel_listen(struct socket *sock, int backlog)
3437 return sock->ops->listen(sock, backlog);
3443 * @sock: listening socket
3452 int kernel_accept(struct socket *sock, struct socket **newsock, int flags)
3454 struct sock *sk = sock->sk;
3462 err = sock->ops->accept(sock, *newsock, flags, true);
3469 (*newsock)->ops = sock->ops;
3479 * @sock: socket
3490 int kernel_connect(struct socket *sock, struct sockaddr *addr, int addrlen,
3497 return sock->ops->connect(sock, (struct sockaddr *)&address, addrlen, flags);
3503 * @sock: socket
3510 int kernel_getsockname(struct socket *sock, struct sockaddr *addr)
3512 return sock->ops->getname(sock, addr, 0);
3518 * @sock: socket
3525 int kernel_getpeername(struct socket *sock, struct sockaddr *addr)
3527 return sock->ops->getname(sock, addr, 1);
3533 * @sock: socket
3542 int kernel_sendpage(struct socket *sock, struct page *page, int offset,
3545 if (sock->ops->sendpage) {
3548 return sock->ops->sendpage(sock, page, offset, size, flags);
3550 return sock_no_sendpage(sock, page, offset, size, flags);
3555 * kernel_sendpage_locked - send a &page through the locked sock (kernel space)
3556 * @sk: sock
3566 int kernel_sendpage_locked(struct sock *sk, struct page *page, int offset,
3569 struct socket *sock = sk->sk_socket;
3571 if (sock->ops->sendpage_locked)
3572 return sock->ops->sendpage_locked(sk, page, offset, size,
3581 * @sock: socket
3587 int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how)
3589 return sock->ops->shutdown(sock, how);
3603 u32 kernel_sock_ip_overhead(struct sock *sk)