Message ID | 20181116092753.18763-1-kaslevs@vmware.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | socket: do a generic_file_splice_read when proto_ops has no splice_read | expand |
From: kaslevs@vmware.com Date: Fri, 16 Nov 2018 11:27:53 +0200 > From: Slavomir Kaslev <kaslevs@vmware.com> > > 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> Applied. I wonder why we left things this way for so long.
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, struct socket *sock = file->private_data; if (unlikely(!sock->ops->splice_read)) - return -EINVAL; + return generic_file_splice_read(file, ppos, pipe, len, flags); return sock->ops->splice_read(sock, ppos, pipe, len, flags); }