[PATCHSET RFC v4 6/6] fuse2fs: improve block and inode caching

Darrick J. Wong
2025-08-21T00:50:41Z

Hi all,

This final series ports the libext2fs inode cache to the new cache.c
hashtable code that was added for fuse4fs unlinked file support and
improves on the UNIX I/O manager's block cache by adding a new I/O
manager that does its own caching. Now we no longer have statically
sized buffer caching for the two fuse servers.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

Comments and questions are, as always, welcome.

e2fsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/e2fsprogs.git/log/?h=fuse2fs-caching
---
Commits in this patchset:
* libsupport: add caching IO manager
* iocache: add the actual buffer cache
* iocache: bump buffer mru priority every 50 accesses
* fuse2fs: enable caching IO manager
* fuse2fs: increase inode cache size
* libext2fs: improve caching for inodes
---
lib/ext2fs/ext2fsP.h | 13 +
lib/support/cache.h | 1
lib/support/iocache.h | 17 +
debugfs/Makefile.in | 4
e2fsck/Makefile.in | 4
lib/ext2fs/Makefile.in | 4
lib/ext2fs/inode.c | 215 +++++++++++---
lib/ext2fs/io_manager.c | 3
lib/support/Makefile.in | 6
lib/support/cache.c | 16 +
lib/support/iocache.c | 740 +++++++++++++++++++++++++++++++++++++++++++++++
misc/Makefile.in | 7
misc/fuse2fs.c | 75 +----
misc/fuse4fs.c | 73 -----
resize/Makefile.in | 4
tests/progs/Makefile.in | 4
16 files changed, 990 insertions(+), 196 deletions(-)
create mode 100644 lib/support/iocache.h
create mode 100644 lib/support/iocache.c