diff options
author | Slavomir Kaslev <kaslevs@vmware.com> | 2018-11-16 04:27:53 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-18 00:34:11 -0500 |
commit | 95506588d2c1d72ca29adef8ae9bf771bcfb4ced (patch) | |
tree | fc99cbe4f4da3a1eee2583d4b63b10010e87e6fa /net/socket.c | |
parent | df5a8ec64eed7fe45b556cfff503acd6429ab817 (diff) |
socket: do a generic_file_splice_read when proto_ops has no splice_read
splice(2) fails with -EINVAL when called reading on a socket with no splice_read
set in its proto_ops (such as vsock sockets). Switch this to fallbacks to a
generic_file_splice_read instead.
Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/socket.c b/net/socket.c index 593826e11a53..334fcc617ef2 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -853,7 +853,7 @@ static ssize_t sock_splice_read(struct file *file, loff_t *ppos, | |||
853 | struct socket *sock = file->private_data; | 853 | struct socket *sock = file->private_data; |
854 | 854 | ||
855 | if (unlikely(!sock->ops->splice_read)) | 855 | if (unlikely(!sock->ops->splice_read)) |
856 | return -EINVAL; | 856 | return generic_file_splice_read(file, ppos, pipe, len, flags); |
857 | 857 | ||
858 | return sock->ops->splice_read(sock, ppos, pipe, len, flags); | 858 | return sock->ops->splice_read(sock, ppos, pipe, len, flags); |
859 | } | 859 | } |