The patch titled Subject: shmem: apply a couple of filemap_splice_read() fixes to shmem_splice_read() has been added to the -mm mm-unstable branch. Its filename is shmem-apply-a-couple-of-filemap_splice_read-fixes-to-shmem_splice_read.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/shmem-apply-a-couple-of-filemap_splice_read-fixes-to-shmem_splice_read.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: David Howells <dhowells@xxxxxxxxxx> Subject: shmem: apply a couple of filemap_splice_read() fixes to shmem_splice_read() Date: Thu, 27 Jul 2023 17:10:16 +0100 Fix shmem_splice_read() to use the inode from in->f_mapping->host rather than file_inode(in) and to skip the splice if it starts after s_maxbytes, analogously with fixes to filemap_splice_read(). Link: https://lkml.kernel.org/r/20230727161016.169066-3-dhowells@xxxxxxxxxx Fixes: bd194b187115 ("shmem: Implement splice-read") Signed-off-by: David Howells <dhowells@xxxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Jens Axboe <axboe@xxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: John Hubbard <jhubbard@xxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Chuck Lever <chuck.lever@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/shmem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- a/mm/shmem.c~shmem-apply-a-couple-of-filemap_splice_read-fixes-to-shmem_splice_read +++ a/mm/shmem.c @@ -2797,13 +2797,16 @@ static ssize_t shmem_file_splice_read(st struct pipe_inode_info *pipe, size_t len, unsigned int flags) { - struct inode *inode = file_inode(in); + struct inode *inode = in->f_mapping->host; struct address_space *mapping = inode->i_mapping; struct folio *folio = NULL; size_t total_spliced = 0, used, npages, n, part; loff_t isize; int error = 0; + if (unlikely(*ppos >= inode->i_sb->s_maxbytes)) + return 0; + /* Work out how much data we can actually add into the pipe */ used = pipe_occupancy(pipe->head, pipe->tail); npages = max_t(ssize_t, pipe->max_usage - used, 0); _ Patches currently in -mm which might be from dhowells@xxxxxxxxxx are crypto-cifs-fix-error-handling-in-extract_iter_to_sg.patch mm-merge-folio_has_private-filemap_release_folio-call-pairs.patch mm-netfs-fscache-stop-read-optimisation-when-folio-removed-from-pagecache.patch shmem-apply-a-couple-of-filemap_splice_read-fixes-to-shmem_splice_read.patch