From: Sasha Levin Date: Sat, 15 Oct 2022 11:18:38 +0000 (-0400) Subject: Revert "fs: check FMODE_LSEEK to control internal pipe splicing" X-Git-Tag: v5.15.79~1019 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ca155aa79e9b5ac14cecd0d062f1edc9fde3fbe;p=platform%2Fkernel%2Flinux-rpi.git Revert "fs: check FMODE_LSEEK to control internal pipe splicing" This reverts commit fd0a6e99b61e6c08fa5cf585d54fd956f70c73a6. Which was upstream commit 97ef77c52b789ec1411d360ed99dca1efe4b2c81. The commit is missing dependencies and breaks NFS tests, remove it for now. Reported-by: Saeed Mirzamohammadi Signed-off-by: Sasha Levin --- diff --git a/fs/splice.c b/fs/splice.c index 3abcd7f..5dbce4d 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -814,15 +814,17 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, { struct pipe_inode_info *pipe; long ret, bytes; + umode_t i_mode; size_t len; int i, flags, more; /* - * We require the input to be seekable, as we don't want to randomly - * drop data for eg socket -> socket splicing. Use the piped splicing - * for that! + * We require the input being a regular file, as we don't want to + * randomly drop data for eg socket -> socket splicing. Use the + * piped splicing for that! */ - if (unlikely(!(in->f_mode & FMODE_LSEEK))) + i_mode = file_inode(in)->i_mode; + if (unlikely(!S_ISREG(i_mode) && !S_ISBLK(i_mode))) return -EINVAL; /*