mbox series

[v5,0/2] fuse: allow notify_inval for all inodes

Message ID 20250216165008.6671-1-luis@igalia.com (mailing list archive)
Headers show
Series fuse: allow notify_inval for all inodes | expand

Message

Luis Henriques Feb. 16, 2025, 4:50 p.m. UTC
Hi!

In this version, invalidate_inodes() needs to be exported to be used by
fuse_reverse_inval_all().  This is a big simplification of this function,
which now simply calls shrink_dcache_sb() and invalidate_inodes().

It's clear that inodes still being referenced will not be invalidated --
but that's already the case for the single inode NOTIFY_INVAL_INODE fuse
operation.  

* Changes since v4
- Replaced superblock inodes iteration by a single call to
  invalidate_inodes().  Also do the shrink_dcache_sb() first. (Dave Chinner)

* Changes since v3
- Added comments to clarify semantic changes in fuse_reverse_inval_inode()
  when called with FUSE_INVAL_ALL_INODES (suggested by Bernd).
- Added comments to inodes iteration loop to clarify __iget/iput usage
  (suggested by Joanne)
- Dropped get_fuse_mount() call -- fuse_mount can be obtained from
  fuse_ilookup() directly (suggested by Joanne)

(Also dropped the RFC from the subject.)

* Changes since v2
- Use the new helper from fuse_reverse_inval_inode(), as suggested by Bernd.
- Also updated patch description as per checkpatch.pl suggestion.

* Changes since v1
As suggested by Bernd, this patch v2 simply adds an helper function that
will make it easier to replace most of it's code by a call to function
super_iter_inodes() when Dave Chinner's patch[1] eventually gets merged.

[1] https://lore.kernel.org/r/20241002014017.3801899-3-david@fromorbit.com


Luis Henriques (2):
  vfs: export invalidate_inodes()
  fuse: add new function to invalidate cache for all inodes

 fs/fuse/inode.c           | 33 +++++++++++++++++++++++++++++++++
 fs/inode.c                |  1 +
 fs/internal.h             |  1 -
 include/linux/fs.h        |  1 +
 include/uapi/linux/fuse.h |  3 +++
 5 files changed, 38 insertions(+), 1 deletion(-)