[GIT PULL] vfs folio
From: Christian Brauner
Date: Fri Sep 13 2024 - 10:43:20 EST
Hey Linus,
/* Summary */
This contains work to port write_begin and write_end to rely on folios
for various filesystems.
This converts ocfs2, vboxfs, orangefs, jffs2, hostfs, fuse, f2fs,
ecryptfs, ntfs3, nilfs2, reiserfs, minixfs, qnx6, sysv, ufs, and
squashfs.
After this series lands a bunch of the filesystems in this list do not
mention struct page anymore.
/* Testing */
gcc version 14.2.0 (Debian 14.2.0-3)
Debian clang version 16.0.6 (27+b1)
All patches are based on v6.11-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.
/* Conflicts */
Merge conflicts with mainline
=============================
No known merge conflicts.
Merge conflicts with other trees
================================
Most of the conflicts are mechanical conversion. The only nasty
conversion is f2fs. The provided conflict resolution by Stephen has been
acked by the f2fs maintainer.
(1) linux-next: manual merge of the vfs-brauner tree with the f2fs tree
https://lore.kernel.org/all/20240905101845.0a47926a@xxxxxxxxxxxxxxxx
(2) linux-next: manual merge of the vfs-brauner tree with the ext4 tree
https://lore.kernel.org/r/20240904091532.4b0dee26@xxxxxxxxxxxxxxxx
(3) linux-next: manual merge of the vfs-brauner tree with the mm tree
https://lore.kernel.org/r/20240902112101.2728f045@xxxxxxxxxxxxxxxx
(4) linux-next: manual merge of the vfs-brauner tree with the exfat tree
https://lore.kernel.org/r/20240812081046.369bbba5@xxxxxxxxxxxxxxxx
The following changes since commit 8400291e289ee6b2bf9779ff1c83a291501f017b:
Linux 6.11-rc1 (2024-07-28 14:19:55 -0700)
are available in the Git repository at:
git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.12.folio
for you to fetch changes up to 84e0e03b308816a48c67f6da2168fcea6d49eda8:
Squashfs: Ensure all readahead pages have been used (2024-08-23 13:11:36 +0200)
Please consider pulling these changes from the signed vfs-6.12.folio tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.12.folio
----------------------------------------------------------------
Christian Brauner (3):
Merge branch 'work.write.end'
Merge patch series "Finish converting jffs2 to folios"
Merge patch series "Squashfs: Update code to not use page->index"
Matthew Wilcox (Oracle) (56):
ufs: Convert ufs_get_page() to use a folio
ufs: Convert ufs_get_page() to ufs_get_folio()
ufs: Convert ufs_check_page() to ufs_check_folio()
ufs: Convert ufs_find_entry() to take a folio
ufs: Convert ufs_set_link() and ufss_dotdot() to take a folio
ufs: Convert ufs_delete_entry() to work on a folio
ufs: Convert ufs_make_empty() to use a folio
ufs: Convert ufs_prepare_chunk() to take a folio
ufs; Convert ufs_commit_chunk() to take a folio
ufs: Convert directory handling to kmap_local
sysv: Convert dir_get_page() to dir_get_folio()
sysv: Convert sysv_find_entry() to take a folio
sysv: Convert sysv_set_link() and sysv_dotdot() to take a folio
sysv: Convert sysv_delete_entry() to work on a folio
sysv: Convert sysv_make_empty() to use a folio
sysv: Convert sysv_prepare_chunk() to take a folio
sysv: Convert dir_commit_chunk() to take a folio
qnx6: Convert qnx6_get_page() to qnx6_get_folio()
qnx6: Convert qnx6_find_entry() to qnx6_find_ino()
qnx6: Convert qnx6_longname() to take a folio
qnx6: Convert qnx6_checkroot() to use a folio
qnx6: Convert qnx6_iget() to use a folio
qnx6: Convert directory handling to use kmap_local
minixfs: Convert dir_get_page() to dir_get_folio()
minixfs: Convert minix_find_entry() to take a folio
minixfs: Convert minix_set_link() and minix_dotdot() to take a folio
minixfs: Convert minix_delete_entry() to work on a folio
minixfs: Convert minix_make_empty() to use a folio
minixfs: Convert minix_prepare_chunk() to take a folio
minixfs: Convert dir_commit_chunk() to take a folio
fs: Convert block_write_begin() to use a folio
reiserfs: Convert grab_tail_page() to use a folio
reiserfs: Convert reiserfs_write_begin() to use a folio
block: Use a folio in blkdev_write_end()
buffer: Use a folio in generic_write_end()
nilfs2: Use a folio in nilfs_recover_dsync_blocks()
ntfs3: Remove reset_log_file()
buffer: Convert block_write_end() to take a folio
ecryptfs: Convert ecryptfs_write_end() to use a folio
ecryptfs: Use a folio in ecryptfs_write_begin()
f2fs: Convert f2fs_write_end() to use a folio
f2fs: Convert f2fs_write_begin() to use a folio
fuse: Convert fuse_write_end() to use a folio
fuse: Convert fuse_write_begin() to use a folio
hostfs: Convert hostfs_write_end() to use a folio
jffs2: Convert jffs2_write_end() to use a folio
jffs2: Convert jffs2_write_begin() to use a folio
orangefs: Convert orangefs_write_end() to use a folio
orangefs: Convert orangefs_write_begin() to use a folio
vboxsf: Use a folio in vboxsf_write_end()
fs: Convert aops->write_end to take a folio
fs: Convert aops->write_begin to take a folio
ocfs2: Convert ocfs2_write_zero_page to use a folio
buffer: Convert __block_write_begin() to take a folio
jffs2: Convert jffs2_do_readpage_nolock to take a folio
jffs2: Use a folio in jffs2_garbage_collect_dnode()
Phillip Lougher (5):
Squashfs: Update page_actor to not use page->index
Squashfs: Update squashfs_readahead() to not use page->index
Squashfs: Update squashfs_readpage_block() to not use page->index
Squashfs: Rewrite and update squashfs_readahead_fragment() to not use page->index
Squashfs: Ensure all readahead pages have been used
Documentation/filesystems/locking.rst | 6 +-
Documentation/filesystems/vfs.rst | 12 +-
block/fops.c | 12 +-
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 47 +++---
fs/adfs/inode.c | 5 +-
fs/affs/file.c | 22 ++-
fs/bcachefs/fs-io-buffered.c | 8 +-
fs/bcachefs/fs-io-buffered.h | 6 +-
fs/bfs/file.c | 4 +-
fs/buffer.c | 63 ++++----
fs/ceph/addr.c | 13 +-
fs/ecryptfs/mmap.c | 86 +++++------
fs/exfat/file.c | 8 +-
fs/exfat/inode.c | 9 +-
fs/ext2/dir.c | 4 +-
fs/ext2/inode.c | 8 +-
fs/ext4/ext4.h | 4 +-
fs/ext4/inline.c | 14 +-
fs/ext4/inode.c | 37 +++--
fs/ext4/verity.c | 8 +-
fs/f2fs/data.c | 87 +++++------
fs/f2fs/super.c | 8 +-
fs/f2fs/verity.c | 8 +-
fs/fat/inode.c | 9 +-
fs/fuse/file.c | 47 +++---
fs/hfs/extent.c | 6 +-
fs/hfs/hfs_fs.h | 2 +-
fs/hfs/inode.c | 5 +-
fs/hfsplus/extents.c | 6 +-
fs/hfsplus/hfsplus_fs.h | 2 +-
fs/hfsplus/inode.c | 5 +-
fs/hostfs/hostfs_kern.c | 23 +--
fs/hpfs/file.c | 9 +-
fs/hugetlbfs/inode.c | 4 +-
fs/iomap/buffered-io.c | 2 +-
fs/jffs2/file.c | 88 ++++++------
fs/jffs2/gc.c | 25 ++--
fs/jfs/inode.c | 8 +-
fs/libfs.c | 13 +-
fs/minix/dir.c | 134 +++++++++--------
fs/minix/inode.c | 8 +-
fs/minix/minix.h | 40 +++---
fs/minix/namei.c | 32 ++---
fs/namei.c | 10 +-
fs/nfs/file.c | 7 +-
fs/nilfs2/dir.c | 4 +-
fs/nilfs2/inode.c | 10 +-
fs/nilfs2/recovery.c | 16 +--
fs/ntfs3/file.c | 9 +-
fs/ntfs3/inode.c | 51 +------
fs/ntfs3/ntfs_fs.h | 5 +-
fs/ocfs2/aops.c | 12 +-
fs/ocfs2/aops.h | 2 +-
fs/ocfs2/file.c | 17 +--
fs/ocfs2/mmap.c | 6 +-
fs/omfs/file.c | 4 +-
fs/orangefs/inode.c | 39 +++--
fs/qnx6/dir.c | 88 ++++++------
fs/qnx6/inode.c | 25 ++--
fs/qnx6/namei.c | 4 +-
fs/qnx6/qnx6.h | 9 +-
fs/reiserfs/inode.c | 57 ++++----
fs/squashfs/file.c | 86 +++++++----
fs/squashfs/file_direct.c | 19 +--
fs/squashfs/page_actor.c | 11 +-
fs/squashfs/page_actor.h | 6 +-
fs/sysv/dir.c | 158 ++++++++++----------
fs/sysv/itree.c | 8 +-
fs/sysv/namei.c | 32 ++---
fs/sysv/sysv.h | 20 +--
fs/ubifs/file.c | 13 +-
fs/udf/file.c | 2 +-
fs/udf/inode.c | 12 +-
fs/ufs/dir.c | 231 ++++++++++++++----------------
fs/ufs/inode.c | 12 +-
fs/ufs/namei.c | 39 +++--
fs/ufs/ufs.h | 20 +--
fs/ufs/util.h | 6 +-
fs/vboxsf/file.c | 24 ++--
include/linux/buffer_head.h | 14 +-
include/linux/fs.h | 6 +-
mm/filemap.c | 6 +-
mm/shmem.c | 11 +-
83 files changed, 994 insertions(+), 1064 deletions(-)