Skip to content
Commit 3253d9d0 authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

splice: only read in as much information as there is pipe buffer space



Andreas Grünbacher reports that on the two filesystems that support
iomap directio, it's possible for splice() to return -EAGAIN (instead of
a short splice) if the pipe being written to has less space available in
its pipe buffers than the length supplied by the calling process.

Months ago we fixed splice_direct_to_actor to clamp the length of the
read request to the size of the splice pipe.  Do the same to do_splice.

Fixes: 17614445 ("splice: don't read more than available pipe space")
Reported-by: default avatar <syzbot+3c01db6025f26530cf8d@syzkaller.appspotmail.com>
Reported-by: default avatarAndreas Grünbacher <andreas.gruenbacher@gmail.com>
Reviewed-by: default avatarAndreas Grünbacher <andreas.gruenbacher@gmail.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent 4f5cafb5
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment