
Port the fuse large folios support patches to OLK6.6. This code hasn't been system tested and is just for exploration and verification, not for merging into the release. Amir Goldstein (1): fuse: allocate ff->release_args only if release is needed Bernd Schubert (1): fuse: Set *nbytesp=0 in fuse_get_user_pages on allocation failure David Howells (1): iov_iter: Provide copy_folio_from_iter() Joanne Koong (32): fuse: convert fuse_writepages_fill() to use a folio for its tmp page fuse: drop unused fuse_mount arg in fuse_writepage_finish() fuse: refactor finished writeback stats updates into helper function fuse: support folios in struct fuse_args_pages and fuse_copy_pages() fuse: add support in virtio for requests using folios fuse: convert cuse to use folios fuse: convert readlink to use folios fuse: convert readdir to use folios fuse: convert reads to use folios fuse: convert writes (non-writeback) to use folios fuse: convert ioctls to use folios fuse: convert retrieves to use folios fuse: revert back to __readahead_folio() for readahead mm/writeback: add folio_mark_dirty_lock() fuse: move initialization of fuse_file to fuse_writepages() instead of in callback fuse: move fuse file initialization to wpa allocation time fuse: refactor out shared logic in fuse_writepages_fill() and fuse_writepage_locked() fuse: convert writebacks to use folios fuse: convert direct io to use folios fuse: remove pages for requests and exclusively use folios fuse: fix direct io folio offset and length calculation fuse: support copying large folios fuse: support large folios for retrieves fuse: refactor fuse_fill_write_pages() fuse: support large folios for writethrough writes fuse: support large folios for folio reads fuse: support large folios for symlinks fuse: support large folios for stores fuse: support large folios for queued writes fuse: support large folios for readahead fuse: optimize direct io large folios processing fuse: enable dynamic configuration of fuse max pages limit (FUSE_MAX_MAX_PAGES) Josef Bacik (10): fuse: use fuse_range_is_writeback() instead of iterating pages fuse: convert readahead to use folios fuse: convert fuse_send_write_pages to use folios fuse: convert fuse_fill_write_pages to use folios fuse: convert fuse_page_mkwrite to use folios fuse: convert fuse_do_readpage to use folios fuse: convert fuse_writepage_need_send to take a folio fuse: convert fuse_retrieve to use folios fuse: convert fuse_notify_store to use folios fuse: use the folio based vmstat helpers Lei Huang (1): fuse: Fix missing FOLL_PIN for direct-io Matthew Wilcox (Oracle) (6): fuse: Remove fuse_writepage fuse: Convert fuse_writepage_locked to take a folio mm: add folio_end_read() fuse: Convert fuse_readpages_end() to use folio_end_read() fuse: Convert fuse_write_end() to use a folio fuse: Convert fuse_write_begin() to use a folio Miklos Szeredi (1): fuse: clear PG_uptodate when using a stolen page Vivek Kasireddy (1): mm/gup: introduce unpin_folio/unpin_folios helpers Documentation/admin-guide/sysctl/fs.rst | 10 + fs/fuse/Makefile | 1 + fs/fuse/cuse.c | 29 +- fs/fuse/dev.c | 163 ++--- fs/fuse/dir.c | 28 +- fs/fuse/file.c | 770 +++++++++++++----------- fs/fuse/fuse_i.h | 51 +- fs/fuse/inode.c | 11 +- fs/fuse/ioctl.c | 33 +- fs/fuse/readdir.c | 18 +- fs/fuse/sysctl.c | 40 ++ fs/fuse/virtio_fs.c | 52 +- include/linux/mm.h | 3 + include/linux/pagemap.h | 1 + include/linux/uio.h | 6 + mm/filemap.c | 22 + mm/folio-compat.c | 6 + mm/gup.c | 47 ++ mm/page-writeback.c | 22 +- mm/util.c | 1 + 20 files changed, 785 insertions(+), 529 deletions(-) create mode 100644 fs/fuse/sysctl.c -- 2.46.1