[GIT PULL] fuse update for 6.16

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Please pull from:

  git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
tags/fuse-update-6.16

- Remove tmp page copying in writeback path (Joanne).  This removes
~300 lines and with that a lot of complexity related to avoiding
reclaim related deadlock.  The old mechanism is replaced with a
mapping flag that tells the MM not to block reclaim waiting for
writeback to complete.  The MM parts have been reviewed/acked by
respective maintainers.

- Convert more code to handle large folios (Joanne).  This still just
adds the code to deal with large folios and does not enable them yet.

- Allow invalidating all cached lookups atomically (Luis Henriques).
This feature is useful for CernVMFS, which currently does this
iteratively.

- Align write prefaulting in fuse with generic one (Dave Hansen)

- Fix race causing invalid data to be cached when setting attributes
on different nodes of a distributed fs (Guang Yuan Wu)

- Update documentation for passthrough (Chen Linxuan)

- Add fdinfo about the device number associated with an opened
/dev/fuse instance (Chen Linxuan)

- Increase readdir buffer size (Miklos).  This depends on a patch to
VFS readdir code that was already merged through Christians tree.

- Optimize io-uring request expiration (Joanne)

- Misc cleanups

There's conflict with commit 74e6ee62a894 ("fuse: drop usage of
folio_index") the first hunk of which just gets evicted with the tmp
page cleanup and the second one needs to apply the trivial
folio_index(folio) -> folio->index conversion to my version.
Resolution attached.

Thanks,
Miklos
---

Chen Linxuan (3):
      MAINTAINERS: update filter of FUSE documentation
      docs: filesystems: add fuse-passthrough.rst
      fs: fuse: add dev id to /dev/fuse fdinfo

Dave Hansen (1):
      fuse: Move prefaulting out of hot write path

Guang Yuan Wu (1):
      fuse: fix race between concurrent setattrs from multiple nodes

Jiale Yang (1):
      fuse: change 'unsigned' to 'unsigned int'

Joanne Koong (15):
      fuse: Convert 'write' to a bit-field in struct fuse_copy_state
      fuse: use boolean bit-fields in struct fuse_copy_state
      fuse: optimize over-io-uring request expiration check
      mm: skip folio reclaim in legacy memcg contexts for deadlockable mappings
      fuse: remove tmp folio for writebacks and internal rb tree
      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: support large folios for writeback

Luis Henriques (1):
      fuse: add more control over cache invalidation behaviour

Miklos Szeredi (3):
      fuse: don't allow signals to interrupt getdents copying
      readdir: supply dir_context.count as readdir buffer size hint
      fuse: increase readdir buffer size

---
 Documentation/filesystems/fuse-passthrough.rst | 133 +++++++
 Documentation/filesystems/index.rst            |   1 +
 MAINTAINERS                                    |   2 +-
 fs/exportfs/expfs.c                            |   1 +
 fs/fuse/dev.c                                  | 182 ++++++----
 fs/fuse/dev_uring.c                            |  34 +-
 fs/fuse/dir.c                                  |  46 ++-
 fs/fuse/file.c                                 | 474 ++++++-------------------
 fs/fuse/fuse_dev_i.h                           |   9 +-
 fs/fuse/fuse_i.h                               |  10 +-
 fs/fuse/inode.c                                |  11 +-
 fs/fuse/readdir.c                              |  40 +--
 fs/overlayfs/readdir.c                         |  12 +-
 fs/readdir.c                                   |  47 ++-
 include/linux/fs.h                             |  10 +
 include/linux/pagemap.h                        |  11 +
 include/uapi/linux/fuse.h                      |   6 +-
 mm/vmscan.c                                    |  12 +-
 18 files changed, 519 insertions(+), 522 deletions(-)
 create mode 100644 Documentation/filesystems/fuse-passthrough.rst
diff --cc fs/fuse/file.c
index 6f19a4daa559,3d0b33be3824..000000000000
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@@ -2349,7 -2118,7 +2118,7 @@@ static bool fuse_writepage_need_send(st
  		return true;
  
  	/* Discontinuity */
- 	if (data->orig_folios[ap->num_folios - 1]->index + 1 != folio->index)
 -	if (folio_next_index(ap->folios[ap->num_folios - 1]) != folio_index(folio))
++	if (folio_next_index(ap->folios[ap->num_folios - 1]) != folio->index
  		return true;
  
  	/* Need to grow the pages array?  If so, did the expansion fail? */

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux