[PATCH 00/12] Change readahead API
Matthew Wilcox
willy at infradead.org
Sat Jan 25 12:35:41 AEDT 2020
From: "Matthew Wilcox (Oracle)" <willy at infradead.org>
This series adds a readahead address_space operation to eventually
replace the readpages operation. The key difference is that
pages are added to the page cache as they are allocated (and
then looked up by the filesystem) instead of passing them on a
list to the readpages operation and having the filesystem add
them to the page cache. It's a net reduction in code for each
implementation, more efficient than walking a list, and solves
the direct-write vs buffered-read problem reported by yu kuai at
https://lore.kernel.org/linux-fsdevel/20200116063601.39201-1-yukuai3@huawei.com/
Matthew Wilcox (Oracle) (12):
mm: Fix the return type of __do_page_cache_readahead
readahead: Ignore return value of ->readpages
readahead: Put pages in cache earlier
mm: Add readahead address space operation
fs: Convert mpage_readpages to mpage_readahead
btrfs: Convert from readpages to readahead
erofs: Convert uncompressed files from readpages to readahead
erofs: Convert compressed files from readpages to readahead
ext4: Convert from readpages to readahead
f2fs: Convert from readpages to readahead
fuse: Convert from readpages to readahead
iomap: Convert from readpages to readahead
Documentation/filesystems/locking.rst | 7 ++-
Documentation/filesystems/vfs.rst | 11 ++++
drivers/staging/exfat/exfat_super.c | 9 ++--
fs/block_dev.c | 9 ++--
fs/btrfs/extent_io.c | 15 ++----
fs/btrfs/extent_io.h | 2 +-
fs/btrfs/inode.c | 18 +++----
fs/erofs/data.c | 34 +++++-------
fs/erofs/zdata.c | 21 +++-----
fs/ext2/inode.c | 12 ++---
fs/ext4/ext4.h | 2 +-
fs/ext4/inode.c | 24 ++++-----
fs/ext4/readpage.c | 20 +++----
fs/f2fs/data.c | 33 +++++-------
fs/fat/inode.c | 8 +--
fs/fuse/file.c | 35 ++++++------
fs/gfs2/aops.c | 20 ++++---
fs/hpfs/file.c | 8 +--
fs/iomap/buffered-io.c | 74 ++++++--------------------
fs/iomap/trace.h | 2 +-
fs/isofs/inode.c | 9 ++--
fs/jfs/inode.c | 8 +--
fs/mpage.c | 38 +++++---------
fs/nilfs2/inode.c | 13 ++---
fs/ocfs2/aops.c | 32 +++++------
fs/omfs/file.c | 8 +--
fs/qnx6/inode.c | 8 +--
fs/reiserfs/inode.c | 10 ++--
fs/udf/inode.c | 8 +--
fs/xfs/xfs_aops.c | 10 ++--
include/linux/fs.h | 2 +
include/linux/iomap.h | 2 +-
include/linux/mpage.h | 2 +-
include/linux/pagemap.h | 12 +++++
include/trace/events/erofs.h | 6 +--
include/trace/events/f2fs.h | 6 +--
mm/internal.h | 2 +-
mm/migrate.c | 2 +-
mm/readahead.c | 76 +++++++++++++++++----------
39 files changed, 289 insertions(+), 329 deletions(-)
--
2.24.1
More information about the Linux-erofs
mailing list