The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Luis Henriques <luis@igalia.com>
To: Miklos Szeredi <miklos@szeredi.hu>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>
Cc: fuse-devel@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	Matt Harvey <mharvey@jumptrading.com>,
	kernel-dev@igalia.com, Luis Henriques <luis@igalia.com>
Subject: [RFC PATCH v1 0/5] fuse: caches documentation and testing
Date: Wed,  8 Jul 2026 14:11:17 +0100	[thread overview]
Message-ID: <20260708131122.2917-1-luis@igalia.com> (raw)

Hi!

FUSE uses several different types of caches: directory, symlink, attributes,
ACLs, etc.  This RFC includes an attempt at documenting the usage of these
caches, in particular the rules for inserting/removing/revalidating data
into them.  The idea for this document came from Miklos during this year's
LSFMM -- he would like to see caches usage documented before he could merge
an initial version of fusex.

This is an early version of this document, which includes only two caches:
symlinks and ACLs.  Further caches will follow, assuming the proposed format
is acceptable.

In the meantime, while (slowly) working on this document, it became clear
that another useful thing to have would be some test cases that could
validate it.  And which could also be used as regression tests, of course.
Thus I'm also adding 2 very basic kselftests for these caches.  For now they
only do the obvious validation for whether caching is working or not, but
they can be extended to further validate different behaviours.

Finally, since the only existing FUSE kselftest is still using fuse2, I'm
also proposing to modify it so that it uses fuse3 instead.  There's the risk
this may be breaking some existing QA, but maybe that's an acceptable risk
(after all, fuse3 has around for ~10 years now!).

Anyway, this is an RFC for all the above.  Any feedback is welcome, as I
start looking into other cache types.

Luis Henriques (5):
  Documentation: fuse: add document on caches being used by FUSE
  selftests/filesystems: convert fusectl test to fuse3
  selftests/filesystems: check that fusectlfs is mounted
  selftests/filesystems: add fuse symlink caching test
  selftests/filesystems: add fuse ACLs caching test

 .../filesystems/fuse/fuse-caches.rst          |  86 +++++++
 .../selftests/filesystems/fuse/.gitignore     |   3 +
 .../selftests/filesystems/fuse/Makefile       |  23 +-
 .../selftests/filesystems/fuse/acl_fs.c       | 216 ++++++++++++++++++
 .../selftests/filesystems/fuse/acl_test.sh    |  66 ++++++
 .../selftests/filesystems/fuse/fuse_mnt.c     |  17 +-
 .../selftests/filesystems/fuse/fusectl_test.c |   7 +
 .../selftests/filesystems/fuse/setgetacl.c    |  62 +++++
 .../selftests/filesystems/fuse/symlink_fs.c   | 115 ++++++++++
 .../filesystems/fuse/symlink_test.sh          |  52 +++++
 10 files changed, 635 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/filesystems/fuse/fuse-caches.rst
 create mode 100644 tools/testing/selftests/filesystems/fuse/acl_fs.c
 create mode 100755 tools/testing/selftests/filesystems/fuse/acl_test.sh
 create mode 100644 tools/testing/selftests/filesystems/fuse/setgetacl.c
 create mode 100644 tools/testing/selftests/filesystems/fuse/symlink_fs.c
 create mode 100755 tools/testing/selftests/filesystems/fuse/symlink_test.sh


             reply	other threads:[~2026-07-08 13:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-08 13:11 Luis Henriques [this message]
2026-07-08 13:11 ` [RFC PATCH v1 1/5] Documentation: fuse: add document on caches being used by FUSE Luis Henriques
2026-07-08 13:11 ` [RFC PATCH v1 2/5] selftests/filesystems: convert fusectl test to fuse3 Luis Henriques
2026-07-08 13:11 ` [RFC PATCH v1 3/5] selftests/filesystems: check that fusectlfs is mounted Luis Henriques
2026-07-08 13:11 ` [RFC PATCH v1 4/5] selftests/filesystems: add fuse symlink caching test Luis Henriques
2026-07-08 13:11 ` [RFC PATCH v1 5/5] selftests/filesystems: add fuse ACLs " Luis Henriques

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260708131122.2917-1-luis@igalia.com \
    --to=luis@igalia.com \
    --cc=corbet@lwn.net \
    --cc=fuse-devel@lists.linux.dev \
    --cc=kernel-dev@igalia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mharvey@jumptrading.com \
    --cc=miklos@szeredi.hu \
    --cc=skhan@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox