diff options
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/socket.c b/net/socket.c index 2c1e8677ff2d..e034fe4164be 100644 --- a/net/socket.c +++ b/net/socket.c | |||
| @@ -1506,7 +1506,7 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr, | |||
| 1506 | if (err) | 1506 | if (err) |
| 1507 | goto out_fd; | 1507 | goto out_fd; |
| 1508 | 1508 | ||
| 1509 | err = sock->ops->accept(sock, newsock, sock->file->f_flags); | 1509 | err = sock->ops->accept(sock, newsock, sock->file->f_flags, false); |
| 1510 | if (err < 0) | 1510 | if (err < 0) |
| 1511 | goto out_fd; | 1511 | goto out_fd; |
| 1512 | 1512 | ||
| @@ -1731,6 +1731,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size, | |||
| 1731 | /* We assume all kernel code knows the size of sockaddr_storage */ | 1731 | /* We assume all kernel code knows the size of sockaddr_storage */ |
| 1732 | msg.msg_namelen = 0; | 1732 | msg.msg_namelen = 0; |
| 1733 | msg.msg_iocb = NULL; | 1733 | msg.msg_iocb = NULL; |
| 1734 | msg.msg_flags = 0; | ||
| 1734 | if (sock->file->f_flags & O_NONBLOCK) | 1735 | if (sock->file->f_flags & O_NONBLOCK) |
| 1735 | flags |= MSG_DONTWAIT; | 1736 | flags |= MSG_DONTWAIT; |
| 1736 | err = sock_recvmsg(sock, &msg, flags); | 1737 | err = sock_recvmsg(sock, &msg, flags); |
| @@ -3238,7 +3239,7 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags) | |||
| 3238 | if (err < 0) | 3239 | if (err < 0) |
| 3239 | goto done; | 3240 | goto done; |
| 3240 | 3241 | ||
| 3241 | err = sock->ops->accept(sock, *newsock, flags); | 3242 | err = sock->ops->accept(sock, *newsock, flags, true); |
| 3242 | if (err < 0) { | 3243 | if (err < 0) { |
| 3243 | sock_release(*newsock); | 3244 | sock_release(*newsock); |
| 3244 | *newsock = NULL; | 3245 | *newsock = NULL; |
