Lines Matching refs:sock

354 struct file *sock_alloc_file(struct socket *sock, int flags, const char *dname)  in sock_alloc_file()  argument
363 } else if (sock->sk) { in sock_alloc_file()
364 name.name = sock->sk->sk_prot_creator->name; in sock_alloc_file()
372 d_instantiate(path.dentry, SOCK_INODE(sock)); in sock_alloc_file()
383 sock->file = file; in sock_alloc_file()
385 file->private_data = sock; in sock_alloc_file()
390 static int sock_map_fd(struct socket *sock, int flags) in sock_map_fd() argument
397 newfile = sock_alloc_file(sock, flags, NULL); in sock_map_fd()
433 struct socket *sock; in sockfd_lookup() local
441 sock = sock_from_file(file, err); in sockfd_lookup()
442 if (!sock) in sockfd_lookup()
444 return sock; in sockfd_lookup()
451 struct socket *sock; in sockfd_lookup_light() local
455 sock = sock_from_file(f.file, err); in sockfd_lookup_light()
456 if (likely(sock)) { in sockfd_lookup_light()
458 return sock; in sockfd_lookup_light()
538 struct socket *sock; in sock_alloc() local
544 sock = SOCKET_I(inode); in sock_alloc()
546 kmemcheck_annotate_bitfield(sock, type); in sock_alloc()
554 return sock; in sock_alloc()
566 void sock_release(struct socket *sock) in sock_release() argument
568 if (sock->ops) { in sock_release()
569 struct module *owner = sock->ops->owner; in sock_release()
571 sock->ops->release(sock); in sock_release()
572 sock->ops = NULL; in sock_release()
576 if (rcu_dereference_protected(sock->wq, 1)->fasync_list) in sock_release()
579 if (test_bit(SOCK_EXTERNALLY_ALLOCATED, &sock->flags)) in sock_release()
583 if (!sock->file) { in sock_release()
584 iput(SOCK_INODE(sock)); in sock_release()
587 sock->file = NULL; in sock_release()
591 void __sock_tx_timestamp(const struct sock *sk, __u8 *tx_flags) in __sock_tx_timestamp()
611 static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg) in sock_sendmsg_nosec() argument
613 int ret = sock->ops->sendmsg(sock, msg, msg_data_left(msg)); in sock_sendmsg_nosec()
618 int sock_sendmsg(struct socket *sock, struct msghdr *msg) in sock_sendmsg() argument
620 int err = security_socket_sendmsg(sock, msg, in sock_sendmsg()
623 return err ?: sock_sendmsg_nosec(sock, msg); in sock_sendmsg()
627 int kernel_sendmsg(struct socket *sock, struct msghdr *msg, in kernel_sendmsg() argument
631 return sock_sendmsg(sock, msg); in kernel_sendmsg()
638 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk, in __sock_recv_timestamp()
680 void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk, in __sock_recv_wifi_status()
696 static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk, in sock_recv_drops()
704 void __sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk, in __sock_recv_ts_and_drops()
712 static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg, in sock_recvmsg_nosec() argument
715 return sock->ops->recvmsg(sock, msg, size, flags); in sock_recvmsg_nosec()
718 int sock_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, in sock_recvmsg() argument
721 int err = security_socket_recvmsg(sock, msg, size, flags); in sock_recvmsg()
723 return err ?: sock_recvmsg_nosec(sock, msg, size, flags); in sock_recvmsg()
742 int kernel_recvmsg(struct socket *sock, struct msghdr *msg, in kernel_recvmsg() argument
750 result = sock_recvmsg(sock, msg, size, flags); in kernel_recvmsg()
759 struct socket *sock; in sock_sendpage() local
762 sock = file->private_data; in sock_sendpage()
768 return kernel_sendpage(sock, page, offset, size, flags); in sock_sendpage()
775 struct socket *sock = file->private_data; in sock_splice_read() local
777 if (unlikely(!sock->ops->splice_read)) in sock_splice_read()
780 return sock->ops->splice_read(sock, ppos, pipe, len, flags); in sock_splice_read()
786 struct socket *sock = file->private_data; in sock_read_iter() local
800 res = sock_recvmsg(sock, &msg, iov_iter_count(to), msg.msg_flags); in sock_read_iter()
808 struct socket *sock = file->private_data; in sock_write_iter() local
819 if (sock->type == SOCK_SEQPACKET) in sock_write_iter()
822 res = sock_sendmsg(sock, &msg); in sock_write_iter()
865 static long sock_do_ioctl(struct net *net, struct socket *sock, in sock_do_ioctl() argument
871 err = sock->ops->ioctl(sock, cmd, arg); in sock_do_ioctl()
890 struct socket *sock; in sock_ioctl() local
891 struct sock *sk; in sock_ioctl()
896 sock = file->private_data; in sock_ioctl()
897 sk = sock->sk; in sock_ioctl()
913 f_setown(sock->file, pid, 1); in sock_ioctl()
918 err = put_user(f_getown(sock->file), in sock_ioctl()
957 err = sock_do_ioctl(net, sock, cmd, arg); in sock_ioctl()
966 struct socket *sock = NULL; in sock_create_lite() local
972 sock = sock_alloc(); in sock_create_lite()
973 if (!sock) { in sock_create_lite()
978 sock->type = type; in sock_create_lite()
979 err = security_socket_post_create(sock, family, type, protocol, 1); in sock_create_lite()
984 *res = sock; in sock_create_lite()
987 sock_release(sock); in sock_create_lite()
988 sock = NULL; in sock_create_lite()
997 struct socket *sock; in sock_poll() local
1002 sock = file->private_data; in sock_poll()
1004 if (sk_can_busy_loop(sock->sk)) { in sock_poll()
1010 sk_busy_loop(sock->sk, 1); in sock_poll()
1013 return busy_flag | sock->ops->poll(file, sock, wait); in sock_poll()
1018 struct socket *sock = file->private_data; in sock_mmap() local
1020 return sock->ops->mmap(file, sock, vma); in sock_mmap()
1042 struct socket *sock = filp->private_data; in sock_fasync() local
1043 struct sock *sk = sock->sk; in sock_fasync()
1050 wq = rcu_dereference_protected(sock->wq, sock_owned_by_user(sk)); in sock_fasync()
1064 int sock_wake_async(struct socket *sock, int how, int band) in sock_wake_async() argument
1068 if (!sock) in sock_wake_async()
1071 wq = rcu_dereference(sock->wq); in sock_wake_async()
1078 if (test_bit(SOCK_ASYNC_WAITDATA, &sock->flags)) in sock_wake_async()
1082 if (!test_and_clear_bit(SOCK_ASYNC_NOSPACE, &sock->flags)) in sock_wake_async()
1101 struct socket *sock; in __sock_create() local
1136 sock = sock_alloc(); in __sock_create()
1137 if (!sock) { in __sock_create()
1143 sock->type = type; in __sock_create()
1172 err = pf->create(net, sock, protocol, kern); in __sock_create()
1180 if (!try_module_get(sock->ops->owner)) in __sock_create()
1188 err = security_socket_post_create(sock, family, type, protocol, kern); in __sock_create()
1191 *res = sock; in __sock_create()
1198 sock->ops = NULL; in __sock_create()
1201 sock_release(sock); in __sock_create()
1225 struct socket *sock; in SYSCALL_DEFINE3() local
1242 retval = sock_create(family, type, protocol, &sock); in SYSCALL_DEFINE3()
1246 retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK)); in SYSCALL_DEFINE3()
1255 sock_release(sock); in SYSCALL_DEFINE3()
1374 struct socket *sock; in SYSCALL_DEFINE3() local
1378 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE3()
1379 if (sock) { in SYSCALL_DEFINE3()
1382 err = security_socket_bind(sock, in SYSCALL_DEFINE3()
1386 err = sock->ops->bind(sock, in SYSCALL_DEFINE3()
1390 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE3()
1403 struct socket *sock; in SYSCALL_DEFINE2() local
1407 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE2()
1408 if (sock) { in SYSCALL_DEFINE2()
1409 somaxconn = sock_net(sock->sk)->core.sysctl_somaxconn; in SYSCALL_DEFINE2()
1413 err = security_socket_listen(sock, backlog); in SYSCALL_DEFINE2()
1415 err = sock->ops->listen(sock, backlog); in SYSCALL_DEFINE2()
1417 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE2()
1437 struct socket *sock, *newsock; in SYSCALL_DEFINE4() local
1448 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE4()
1449 if (!sock) in SYSCALL_DEFINE4()
1457 newsock->type = sock->type; in SYSCALL_DEFINE4()
1458 newsock->ops = sock->ops; in SYSCALL_DEFINE4()
1472 newfile = sock_alloc_file(newsock, flags, sock->sk->sk_prot_creator->name); in SYSCALL_DEFINE4()
1480 err = security_socket_accept(sock, newsock); in SYSCALL_DEFINE4()
1484 err = sock->ops->accept(sock, newsock, sock->file->f_flags); in SYSCALL_DEFINE4()
1506 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE4()
1536 struct socket *sock; in SYSCALL_DEFINE3() local
1540 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE3()
1541 if (!sock) in SYSCALL_DEFINE3()
1548 security_socket_connect(sock, (struct sockaddr *)&address, addrlen); in SYSCALL_DEFINE3()
1552 err = sock->ops->connect(sock, (struct sockaddr *)&address, addrlen, in SYSCALL_DEFINE3()
1553 sock->file->f_flags); in SYSCALL_DEFINE3()
1555 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE3()
1568 struct socket *sock; in SYSCALL_DEFINE3() local
1572 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE3()
1573 if (!sock) in SYSCALL_DEFINE3()
1576 err = security_socket_getsockname(sock); in SYSCALL_DEFINE3()
1580 err = sock->ops->getname(sock, (struct sockaddr *)&address, &len, 0); in SYSCALL_DEFINE3()
1586 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE3()
1599 struct socket *sock; in SYSCALL_DEFINE3() local
1603 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE3()
1604 if (sock != NULL) { in SYSCALL_DEFINE3()
1605 err = security_socket_getpeername(sock); in SYSCALL_DEFINE3()
1607 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE3()
1612 sock->ops->getname(sock, (struct sockaddr *)&address, &len, in SYSCALL_DEFINE3()
1617 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE3()
1632 struct socket *sock; in SYSCALL_DEFINE6() local
1642 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE6()
1643 if (!sock) in SYSCALL_DEFINE6()
1657 if (sock->file->f_flags & O_NONBLOCK) in SYSCALL_DEFINE6()
1660 err = sock_sendmsg(sock, &msg); in SYSCALL_DEFINE6()
1663 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE6()
1688 struct socket *sock; in SYSCALL_DEFINE6() local
1698 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE6()
1699 if (!sock) in SYSCALL_DEFINE6()
1709 if (sock->file->f_flags & O_NONBLOCK) in SYSCALL_DEFINE6()
1711 err = sock_recvmsg(sock, &msg, iov_iter_count(&msg.msg_iter), flags); in SYSCALL_DEFINE6()
1720 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE6()
1744 struct socket *sock; in SYSCALL_DEFINE5() local
1749 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE5()
1750 if (sock != NULL) { in SYSCALL_DEFINE5()
1751 err = security_socket_setsockopt(sock, level, optname); in SYSCALL_DEFINE5()
1757 sock_setsockopt(sock, level, optname, optval, in SYSCALL_DEFINE5()
1761 sock->ops->setsockopt(sock, level, optname, optval, in SYSCALL_DEFINE5()
1764 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE5()
1778 struct socket *sock; in SYSCALL_DEFINE5() local
1780 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE5()
1781 if (sock != NULL) { in SYSCALL_DEFINE5()
1782 err = security_socket_getsockopt(sock, level, optname); in SYSCALL_DEFINE5()
1788 sock_getsockopt(sock, level, optname, optval, in SYSCALL_DEFINE5()
1792 sock->ops->getsockopt(sock, level, optname, optval, in SYSCALL_DEFINE5()
1795 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE5()
1807 struct socket *sock; in SYSCALL_DEFINE2() local
1809 sock = sockfd_lookup_light(fd, &err, &fput_needed); in SYSCALL_DEFINE2()
1810 if (sock != NULL) { in SYSCALL_DEFINE2()
1811 err = security_socket_shutdown(sock, how); in SYSCALL_DEFINE2()
1813 err = sock->ops->shutdown(sock, how); in SYSCALL_DEFINE2()
1814 fput_light(sock->file, fput_needed); in SYSCALL_DEFINE2()
1884 static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg, in ___sys_sendmsg() argument
1915 cmsghdr_from_user_compat_to_kern(msg_sys, sock->sk, ctl, in ___sys_sendmsg()
1923 ctl_buf = sock_kmalloc(sock->sk, ctl_len, GFP_KERNEL); in ___sys_sendmsg()
1941 if (sock->file->f_flags & O_NONBLOCK) in ___sys_sendmsg()
1953 err = sock_sendmsg_nosec(sock, msg_sys); in ___sys_sendmsg()
1956 err = sock_sendmsg(sock, msg_sys); in ___sys_sendmsg()
1970 sock_kfree_s(sock->sk, ctl_buf, ctl_len); in ___sys_sendmsg()
1984 struct socket *sock; in __sys_sendmsg() local
1986 sock = sockfd_lookup_light(fd, &err, &fput_needed); in __sys_sendmsg()
1987 if (!sock) in __sys_sendmsg()
1990 err = ___sys_sendmsg(sock, msg, &msg_sys, flags, NULL); in __sys_sendmsg()
1992 fput_light(sock->file, fput_needed); in __sys_sendmsg()
2012 struct socket *sock; in __sys_sendmmsg() local
2023 sock = sockfd_lookup_light(fd, &err, &fput_needed); in __sys_sendmmsg()
2024 if (!sock) in __sys_sendmmsg()
2034 err = ___sys_sendmsg(sock, (struct user_msghdr __user *)compat_entry, in __sys_sendmmsg()
2041 err = ___sys_sendmsg(sock, in __sys_sendmmsg()
2055 fput_light(sock->file, fput_needed); in __sys_sendmmsg()
2072 static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg, in ___sys_recvmsg() argument
2106 if (sock->file->f_flags & O_NONBLOCK) in ___sys_recvmsg()
2108 err = (nosec ? sock_recvmsg_nosec : sock_recvmsg)(sock, msg_sys, in ___sys_recvmsg()
2148 struct socket *sock; in __sys_recvmsg() local
2150 sock = sockfd_lookup_light(fd, &err, &fput_needed); in __sys_recvmsg()
2151 if (!sock) in __sys_recvmsg()
2154 err = ___sys_recvmsg(sock, msg, &msg_sys, flags, 0); in __sys_recvmsg()
2156 fput_light(sock->file, fput_needed); in __sys_recvmsg()
2177 struct socket *sock; in __sys_recvmmsg() local
2190 sock = sockfd_lookup_light(fd, &err, &fput_needed); in __sys_recvmmsg()
2191 if (!sock) in __sys_recvmmsg()
2194 err = sock_error(sock->sk); in __sys_recvmmsg()
2206 err = ___sys_recvmsg(sock, (struct user_msghdr __user *)compat_entry, in __sys_recvmmsg()
2214 err = ___sys_recvmsg(sock, in __sys_recvmmsg()
2251 fput_light(sock->file, fput_needed); in __sys_recvmmsg()
2268 sock->sk->sk_err = -err; in __sys_recvmmsg()
2559 static int do_siocgstamp(struct net *net, struct socket *sock, in do_siocgstamp() argument
2567 err = sock_do_ioctl(net, sock, cmd, (unsigned long)&ktv); in do_siocgstamp()
2575 static int do_siocgstampns(struct net *net, struct socket *sock, in do_siocgstampns() argument
2583 err = sock_do_ioctl(net, sock, cmd, (unsigned long)&kts); in do_siocgstampns()
2876 static int dev_ifsioc(struct net *net, struct socket *sock, in dev_ifsioc() argument
2886 err = sock_do_ioctl(net, sock, cmd, (unsigned long)uifr); in dev_ifsioc()
2981 static int routing_ioctl(struct net *net, struct socket *sock, in routing_ioctl() argument
2992 if (sock && sock->sk && sock->sk->sk_family == AF_INET6) { /* ipv6 */ in routing_ioctl()
3031 ret = sock_do_ioctl(net, sock, cmd, (unsigned long) r); in routing_ioctl()
3053 static int compat_sock_ioctl_trans(struct file *file, struct socket *sock, in compat_sock_ioctl_trans() argument
3057 struct sock *sk = sock->sk; in compat_sock_ioctl_trans()
3085 return routing_ioctl(net, sock, cmd, argp); in compat_sock_ioctl_trans()
3087 return do_siocgstamp(net, sock, cmd, argp); in compat_sock_ioctl_trans()
3089 return do_siocgstampns(net, sock, cmd, argp); in compat_sock_ioctl_trans()
3141 return dev_ifsioc(net, sock, cmd, argp); in compat_sock_ioctl_trans()
3147 return sock_do_ioctl(net, sock, cmd, arg); in compat_sock_ioctl_trans()
3156 struct socket *sock = file->private_data; in compat_sock_ioctl() local
3158 struct sock *sk; in compat_sock_ioctl()
3161 sk = sock->sk; in compat_sock_ioctl()
3164 if (sock->ops->compat_ioctl) in compat_sock_ioctl()
3165 ret = sock->ops->compat_ioctl(sock, cmd, arg); in compat_sock_ioctl()
3172 ret = compat_sock_ioctl_trans(file, sock, cmd, arg); in compat_sock_ioctl()
3178 int kernel_bind(struct socket *sock, struct sockaddr *addr, int addrlen) in kernel_bind() argument
3180 return sock->ops->bind(sock, addr, addrlen); in kernel_bind()
3184 int kernel_listen(struct socket *sock, int backlog) in kernel_listen() argument
3186 return sock->ops->listen(sock, backlog); in kernel_listen()
3190 int kernel_accept(struct socket *sock, struct socket **newsock, int flags) in kernel_accept() argument
3192 struct sock *sk = sock->sk; in kernel_accept()
3200 err = sock->ops->accept(sock, *newsock, flags); in kernel_accept()
3207 (*newsock)->ops = sock->ops; in kernel_accept()
3215 int kernel_connect(struct socket *sock, struct sockaddr *addr, int addrlen, in kernel_connect() argument
3218 return sock->ops->connect(sock, addr, addrlen, flags); in kernel_connect()
3222 int kernel_getsockname(struct socket *sock, struct sockaddr *addr, in kernel_getsockname() argument
3225 return sock->ops->getname(sock, addr, addrlen, 0); in kernel_getsockname()
3229 int kernel_getpeername(struct socket *sock, struct sockaddr *addr, in kernel_getpeername() argument
3232 return sock->ops->getname(sock, addr, addrlen, 1); in kernel_getpeername()
3236 int kernel_getsockopt(struct socket *sock, int level, int optname, in kernel_getsockopt() argument
3249 err = sock_getsockopt(sock, level, optname, uoptval, uoptlen); in kernel_getsockopt()
3251 err = sock->ops->getsockopt(sock, level, optname, uoptval, in kernel_getsockopt()
3258 int kernel_setsockopt(struct socket *sock, int level, int optname, in kernel_setsockopt() argument
3269 err = sock_setsockopt(sock, level, optname, uoptval, optlen); in kernel_setsockopt()
3271 err = sock->ops->setsockopt(sock, level, optname, uoptval, in kernel_setsockopt()
3278 int kernel_sendpage(struct socket *sock, struct page *page, int offset, in kernel_sendpage() argument
3281 if (sock->ops->sendpage) in kernel_sendpage()
3282 return sock->ops->sendpage(sock, page, offset, size, flags); in kernel_sendpage()
3284 return sock_no_sendpage(sock, page, offset, size, flags); in kernel_sendpage()
3288 int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg) in kernel_sock_ioctl() argument
3294 err = sock->ops->ioctl(sock, cmd, arg); in kernel_sock_ioctl()
3301 int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how) in kernel_sock_shutdown() argument
3303 return sock->ops->shutdown(sock, how); in kernel_sock_shutdown()