Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

splice: Use filemap_splice_read() instead of generic_file_splice_read()

Replace pointers to generic_file_splice_read() with calls to
filemap_splice_read().

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Christian Brauner <brauner@kernel.org>
cc: Jens Axboe <axboe@kernel.dk>
cc: Al Viro <viro@zeniv.linux.org.uk>
cc: David Hildenbrand <david@redhat.com>
cc: John Hubbard <jhubbard@nvidia.com>
cc: linux-mm@kvack.org
cc: linux-block@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/20230522135018.2742245-29-dhowells@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

David Howells and committed by
Jens Axboe
2cb1e089 ab825131

+39 -39
+1 -1
block/fops.c
··· 691 691 #ifdef CONFIG_COMPAT 692 692 .compat_ioctl = compat_blkdev_ioctl, 693 693 #endif 694 - .splice_read = generic_file_splice_read, 694 + .splice_read = filemap_splice_read, 695 695 .splice_write = iter_file_splice_write, 696 696 .fallocate = blkdev_fallocate, 697 697 };
+1 -1
fs/adfs/file.c
··· 28 28 .mmap = generic_file_mmap, 29 29 .fsync = generic_file_fsync, 30 30 .write_iter = generic_file_write_iter, 31 - .splice_read = generic_file_splice_read, 31 + .splice_read = filemap_splice_read, 32 32 }; 33 33 34 34 const struct inode_operations adfs_file_inode_operations = {
+1 -1
fs/affs/file.c
··· 1001 1001 .open = affs_file_open, 1002 1002 .release = affs_file_release, 1003 1003 .fsync = affs_file_fsync, 1004 - .splice_read = generic_file_splice_read, 1004 + .splice_read = filemap_splice_read, 1005 1005 }; 1006 1006 1007 1007 const struct inode_operations affs_file_inode_operations = {
+1 -1
fs/afs/file.c
··· 603 603 if (ret < 0) 604 604 return ret; 605 605 606 - return generic_file_splice_read(in, ppos, pipe, len, flags); 606 + return filemap_splice_read(in, ppos, pipe, len, flags); 607 607 }
+1 -1
fs/bfs/file.c
··· 27 27 .read_iter = generic_file_read_iter, 28 28 .write_iter = generic_file_write_iter, 29 29 .mmap = generic_file_mmap, 30 - .splice_read = generic_file_splice_read, 30 + .splice_read = filemap_splice_read, 31 31 }; 32 32 33 33 static int bfs_move_block(unsigned long from, unsigned long to,
+1 -1
fs/btrfs/file.c
··· 3825 3825 const struct file_operations btrfs_file_operations = { 3826 3826 .llseek = btrfs_file_llseek, 3827 3827 .read_iter = btrfs_file_read_iter, 3828 - .splice_read = generic_file_splice_read, 3828 + .splice_read = filemap_splice_read, 3829 3829 .write_iter = btrfs_file_write_iter, 3830 3830 .splice_write = iter_file_splice_write, 3831 3831 .mmap = btrfs_file_mmap,
+1 -1
fs/cramfs/inode.c
··· 473 473 static const struct file_operations cramfs_physmem_fops = { 474 474 .llseek = generic_file_llseek, 475 475 .read_iter = generic_file_read_iter, 476 - .splice_read = generic_file_splice_read, 476 + .splice_read = filemap_splice_read, 477 477 .mmap = cramfs_physmem_mmap, 478 478 #ifndef CONFIG_MMU 479 479 .get_unmapped_area = cramfs_physmem_get_unmapped_area,
+2 -2
fs/ecryptfs/file.c
··· 47 47 /* 48 48 * ecryptfs_splice_read_update_atime 49 49 * 50 - * generic_file_splice_read updates the atime of upper layer inode. But, it 50 + * filemap_splice_read updates the atime of upper layer inode. But, it 51 51 * doesn't give us a chance to update the atime of the lower layer inode. This 52 52 * function is a wrapper to generic_file_read. It updates the atime of the 53 53 * lower level inode if generic_file_read returns without any errors. This is ··· 61 61 ssize_t rc; 62 62 const struct path *path; 63 63 64 - rc = generic_file_splice_read(in, ppos, pipe, len, flags); 64 + rc = filemap_splice_read(in, ppos, pipe, len, flags); 65 65 if (rc >= 0) { 66 66 path = ecryptfs_dentry_to_lower_path(in->f_path.dentry); 67 67 touch_atime(path);
+1 -1
fs/erofs/data.c
··· 448 448 .llseek = generic_file_llseek, 449 449 .read_iter = erofs_file_read_iter, 450 450 .mmap = erofs_file_mmap, 451 - .splice_read = generic_file_splice_read, 451 + .splice_read = filemap_splice_read, 452 452 };
+1 -1
fs/exfat/file.c
··· 389 389 #endif 390 390 .mmap = generic_file_mmap, 391 391 .fsync = exfat_file_fsync, 392 - .splice_read = generic_file_splice_read, 392 + .splice_read = filemap_splice_read, 393 393 .splice_write = iter_file_splice_write, 394 394 }; 395 395
+1 -1
fs/ext2/file.c
··· 192 192 .release = ext2_release_file, 193 193 .fsync = ext2_fsync, 194 194 .get_unmapped_area = thp_get_unmapped_area, 195 - .splice_read = generic_file_splice_read, 195 + .splice_read = filemap_splice_read, 196 196 .splice_write = iter_file_splice_write, 197 197 }; 198 198
+1 -1
fs/ext4/file.c
··· 155 155 156 156 if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) 157 157 return -EIO; 158 - return generic_file_splice_read(in, ppos, pipe, len, flags); 158 + return filemap_splice_read(in, ppos, pipe, len, flags); 159 159 } 160 160 161 161 /*
+1 -1
fs/fat/file.c
··· 209 209 .unlocked_ioctl = fat_generic_ioctl, 210 210 .compat_ioctl = compat_ptr_ioctl, 211 211 .fsync = fat_file_fsync, 212 - .splice_read = generic_file_splice_read, 212 + .splice_read = filemap_splice_read, 213 213 .splice_write = iter_file_splice_write, 214 214 .fallocate = fat_fallocate, 215 215 };
+1 -1
fs/fuse/file.c
··· 3252 3252 .lock = fuse_file_lock, 3253 3253 .get_unmapped_area = thp_get_unmapped_area, 3254 3254 .flock = fuse_file_flock, 3255 - .splice_read = generic_file_splice_read, 3255 + .splice_read = filemap_splice_read, 3256 3256 .splice_write = iter_file_splice_write, 3257 3257 .unlocked_ioctl = fuse_file_ioctl, 3258 3258 .compat_ioctl = fuse_file_compat_ioctl,
+2 -2
fs/gfs2/file.c
··· 1568 1568 .fsync = gfs2_fsync, 1569 1569 .lock = gfs2_lock, 1570 1570 .flock = gfs2_flock, 1571 - .splice_read = generic_file_splice_read, 1571 + .splice_read = filemap_splice_read, 1572 1572 .splice_write = gfs2_file_splice_write, 1573 1573 .setlease = simple_nosetlease, 1574 1574 .fallocate = gfs2_fallocate, ··· 1599 1599 .open = gfs2_open, 1600 1600 .release = gfs2_release, 1601 1601 .fsync = gfs2_fsync, 1602 - .splice_read = generic_file_splice_read, 1602 + .splice_read = filemap_splice_read, 1603 1603 .splice_write = gfs2_file_splice_write, 1604 1604 .setlease = generic_setlease, 1605 1605 .fallocate = gfs2_fallocate,
+1 -1
fs/hfs/inode.c
··· 694 694 .read_iter = generic_file_read_iter, 695 695 .write_iter = generic_file_write_iter, 696 696 .mmap = generic_file_mmap, 697 - .splice_read = generic_file_splice_read, 697 + .splice_read = filemap_splice_read, 698 698 .fsync = hfs_file_fsync, 699 699 .open = hfs_file_open, 700 700 .release = hfs_file_release,
+1 -1
fs/hfsplus/inode.c
··· 372 372 .read_iter = generic_file_read_iter, 373 373 .write_iter = generic_file_write_iter, 374 374 .mmap = generic_file_mmap, 375 - .splice_read = generic_file_splice_read, 375 + .splice_read = filemap_splice_read, 376 376 .fsync = hfsplus_file_fsync, 377 377 .open = hfsplus_file_open, 378 378 .release = hfsplus_file_release,
+1 -1
fs/hostfs/hostfs_kern.c
··· 381 381 382 382 static const struct file_operations hostfs_file_fops = { 383 383 .llseek = generic_file_llseek, 384 - .splice_read = generic_file_splice_read, 384 + .splice_read = filemap_splice_read, 385 385 .splice_write = iter_file_splice_write, 386 386 .read_iter = generic_file_read_iter, 387 387 .write_iter = generic_file_write_iter,
+1 -1
fs/hpfs/file.c
··· 259 259 .mmap = generic_file_mmap, 260 260 .release = hpfs_file_release, 261 261 .fsync = hpfs_file_fsync, 262 - .splice_read = generic_file_splice_read, 262 + .splice_read = filemap_splice_read, 263 263 .unlocked_ioctl = hpfs_ioctl, 264 264 .compat_ioctl = compat_ptr_ioctl, 265 265 };
+1 -1
fs/jffs2/file.c
··· 56 56 .unlocked_ioctl=jffs2_ioctl, 57 57 .mmap = generic_file_readonly_mmap, 58 58 .fsync = jffs2_fsync, 59 - .splice_read = generic_file_splice_read, 59 + .splice_read = filemap_splice_read, 60 60 .splice_write = iter_file_splice_write, 61 61 }; 62 62
+1 -1
fs/jfs/file.c
··· 144 144 .read_iter = generic_file_read_iter, 145 145 .write_iter = generic_file_write_iter, 146 146 .mmap = generic_file_mmap, 147 - .splice_read = generic_file_splice_read, 147 + .splice_read = filemap_splice_read, 148 148 .splice_write = iter_file_splice_write, 149 149 .fsync = jfs_fsync, 150 150 .release = jfs_release,
+1 -1
fs/minix/file.c
··· 19 19 .write_iter = generic_file_write_iter, 20 20 .mmap = generic_file_mmap, 21 21 .fsync = generic_file_fsync, 22 - .splice_read = generic_file_splice_read, 22 + .splice_read = filemap_splice_read, 23 23 }; 24 24 25 25 static int minix_setattr(struct mnt_idmap *idmap,
+1 -1
fs/nilfs2/file.c
··· 140 140 .open = generic_file_open, 141 141 /* .release = nilfs_release_file, */ 142 142 .fsync = nilfs_sync_file, 143 - .splice_read = generic_file_splice_read, 143 + .splice_read = filemap_splice_read, 144 144 .splice_write = iter_file_splice_write, 145 145 }; 146 146
+1 -1
fs/ntfs/file.c
··· 1992 1992 #endif /* NTFS_RW */ 1993 1993 .mmap = generic_file_mmap, 1994 1994 .open = ntfs_file_open, 1995 - .splice_read = generic_file_splice_read, 1995 + .splice_read = filemap_splice_read, 1996 1996 }; 1997 1997 1998 1998 const struct inode_operations ntfs_file_inode_ops = {
+1 -1
fs/ntfs3/file.c
··· 770 770 return -EOPNOTSUPP; 771 771 } 772 772 773 - return generic_file_splice_read(in, ppos, pipe, len, flags); 773 + return filemap_splice_read(in, ppos, pipe, len, flags); 774 774 } 775 775 776 776 /*
+1 -1
fs/ocfs2/file.c
··· 2827 2827 .compat_ioctl = ocfs2_compat_ioctl, 2828 2828 #endif 2829 2829 .flock = ocfs2_flock, 2830 - .splice_read = generic_file_splice_read, 2830 + .splice_read = filemap_splice_read, 2831 2831 .splice_write = iter_file_splice_write, 2832 2832 .fallocate = ocfs2_fallocate, 2833 2833 .remap_file_range = ocfs2_remap_file_range,
+1 -1
fs/omfs/file.c
··· 334 334 .write_iter = generic_file_write_iter, 335 335 .mmap = generic_file_mmap, 336 336 .fsync = generic_file_fsync, 337 - .splice_read = generic_file_splice_read, 337 + .splice_read = filemap_splice_read, 338 338 }; 339 339 340 340 static int omfs_setattr(struct mnt_idmap *idmap,
+1 -1
fs/ramfs/file-mmu.c
··· 43 43 .write_iter = generic_file_write_iter, 44 44 .mmap = generic_file_mmap, 45 45 .fsync = noop_fsync, 46 - .splice_read = generic_file_splice_read, 46 + .splice_read = filemap_splice_read, 47 47 .splice_write = iter_file_splice_write, 48 48 .llseek = generic_file_llseek, 49 49 .get_unmapped_area = ramfs_mmu_get_unmapped_area,
+1 -1
fs/ramfs/file-nommu.c
··· 43 43 .read_iter = generic_file_read_iter, 44 44 .write_iter = generic_file_write_iter, 45 45 .fsync = noop_fsync, 46 - .splice_read = generic_file_splice_read, 46 + .splice_read = filemap_splice_read, 47 47 .splice_write = iter_file_splice_write, 48 48 .llseek = generic_file_llseek, 49 49 };
+1 -1
fs/read_write.c
··· 29 29 .llseek = generic_file_llseek, 30 30 .read_iter = generic_file_read_iter, 31 31 .mmap = generic_file_readonly_mmap, 32 - .splice_read = generic_file_splice_read, 32 + .splice_read = filemap_splice_read, 33 33 }; 34 34 35 35 EXPORT_SYMBOL(generic_ro_fops);
+1 -1
fs/reiserfs/file.c
··· 247 247 .fsync = reiserfs_sync_file, 248 248 .read_iter = generic_file_read_iter, 249 249 .write_iter = generic_file_write_iter, 250 - .splice_read = generic_file_splice_read, 250 + .splice_read = filemap_splice_read, 251 251 .splice_write = iter_file_splice_write, 252 252 .llseek = generic_file_llseek, 253 253 };
+1 -1
fs/romfs/mmap-nommu.c
··· 78 78 const struct file_operations romfs_ro_fops = { 79 79 .llseek = generic_file_llseek, 80 80 .read_iter = generic_file_read_iter, 81 - .splice_read = generic_file_splice_read, 81 + .splice_read = filemap_splice_read, 82 82 .mmap = romfs_mmap, 83 83 .get_unmapped_area = romfs_get_unmapped_area, 84 84 .mmap_capabilities = romfs_mmap_capabilities,
+1 -1
fs/sysv/file.c
··· 26 26 .write_iter = generic_file_write_iter, 27 27 .mmap = generic_file_mmap, 28 28 .fsync = generic_file_fsync, 29 - .splice_read = generic_file_splice_read, 29 + .splice_read = filemap_splice_read, 30 30 }; 31 31 32 32 static int sysv_setattr(struct mnt_idmap *idmap,
+1 -1
fs/ubifs/file.c
··· 1669 1669 .mmap = ubifs_file_mmap, 1670 1670 .fsync = ubifs_fsync, 1671 1671 .unlocked_ioctl = ubifs_ioctl, 1672 - .splice_read = generic_file_splice_read, 1672 + .splice_read = filemap_splice_read, 1673 1673 .splice_write = iter_file_splice_write, 1674 1674 .open = fscrypt_file_open, 1675 1675 #ifdef CONFIG_COMPAT
+1 -1
fs/udf/file.c
··· 209 209 .write_iter = udf_file_write_iter, 210 210 .release = udf_release_file, 211 211 .fsync = generic_file_fsync, 212 - .splice_read = generic_file_splice_read, 212 + .splice_read = filemap_splice_read, 213 213 .splice_write = iter_file_splice_write, 214 214 .llseek = generic_file_llseek, 215 215 };
+1 -1
fs/ufs/file.c
··· 41 41 .mmap = generic_file_mmap, 42 42 .open = generic_file_open, 43 43 .fsync = generic_file_fsync, 44 - .splice_read = generic_file_splice_read, 44 + .splice_read = filemap_splice_read, 45 45 };
+1 -1
fs/vboxsf/file.c
··· 217 217 .open = vboxsf_file_open, 218 218 .release = vboxsf_file_release, 219 219 .fsync = noop_fsync, 220 - .splice_read = generic_file_splice_read, 220 + .splice_read = filemap_splice_read, 221 221 }; 222 222 223 223 const struct inode_operations vboxsf_reg_iops = {