From: Joanne Koong <joannelkoong@gmail.com>
To: miklos@szeredi.hu
Cc: amir73il@gmail.com, fuse-devel@lists.linux.dev, luis@igalia.com
Subject: [PATCH v1 00/17] fuse: extend passthrough to inode operations
Date: Mon, 20 Apr 2026 15:16:20 -0700 [thread overview]
Message-ID: <20260420221637.2631478-1-joannelkoong@gmail.com> (raw)
This series extends fuse passthrough to support inode operations (getattr,
setattr), directory readdir, and kernel-initiated open on backing files.
The existing FUSE_PASSTHROUGH mode attaches a backing file to a fuse inode
only when a passthrough file is open. This series introduces
FUSE_PASSTHROUGH_INO, a stricter mode requiring one-to-one inode number
mapping, which allows attaching a backing file for the lifetime of the fuse
inode.
Future work includes passthrough for additional operations (rename, unlink,
readdirplus) and full subtree passthrough, which will be part of a separate
series.
Patches 1-7 are from Amir from his git tree in [1]. There were a few
modifications made (removed separate FUSE_PASSTHROUGH_OP_STATX op,
modified fuse_kstat_to_attr() - the full diff of changes is in [2]); if there
are any mistakes, those are mine and not Amir's.
For testing/debugging, this was done using the passthrough_hp server with the
changes from [3]. readdirplus passthrough is not yet implemented, so after an
ls, subsequent operations on listed files will go through the server until
their dentries expire and a fresh lookup sets up passthrough. During
testing/debugging, I avoided ls and accessed files directly.
[1] https://github.com/amir73il/linux/commits/fuse-backing-inode-wip/
[2] https://gist.github.com/joannekoong/1e55f90c355a928eb5fa0ac9972c1d0e
[3] https://github.com/joannekoong/libfuse/commits/extended_passthrough
Amir Goldstein (7):
fuse: introduce FUSE_PASSTHROUGH_INO mode
fuse: prepare for passthrough of inode operations
fuse: prepare for readdir passthrough on directories
fuse: implement passthrough for readdir
fuse: prepare for long lived reference on backing file
fuse: implement passthrough for getattr/statx
fuse: prepare to setup backing inode passthrough on lookup
Joanne Koong (10):
fuse: add passthrough ops gating
fuse: prepare to cache statx attributes from entry replies
fuse: add struct fuse_entry2_out and helpers for extended entry
replies
fuse: add passthrough lookup
fuse: add passthrough support for entry creation
fuse: add passthrough support for atomic file creation
fuse: use passthrough getattr in setattr suid/sgid handling
fuse: add passthrough setattr
fuse: add passthrough open
docs: fuse: document extended passthrough (FUSE_PASSTHROUGH_INO)
.../filesystems/fuse/fuse-passthrough.rst | 131 ++++++++
fs/fuse/backing.c | 58 +++-
fs/fuse/cuse.c | 2 +-
fs/fuse/dir.c | 293 +++++++++++++++---
fs/fuse/file.c | 61 +++-
fs/fuse/fuse_i.h | 112 ++++++-
fs/fuse/inode.c | 27 +-
fs/fuse/iomode.c | 114 +++++--
fs/fuse/passthrough.c | 170 +++++++++-
fs/fuse/readdir.c | 5 +-
include/uapi/linux/fuse.h | 33 +-
11 files changed, 871 insertions(+), 135 deletions(-)
--
2.52.0
next reply other threads:[~2026-04-20 22:18 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-20 22:16 Joanne Koong [this message]
2026-04-20 22:16 ` [PATCH v1 01/17] fuse: introduce FUSE_PASSTHROUGH_INO mode Joanne Koong
2026-04-21 21:11 ` Darrick J. Wong
2026-04-21 23:38 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 02/17] fuse: prepare for passthrough of inode operations Joanne Koong
2026-04-21 21:16 ` Darrick J. Wong
2026-04-22 1:12 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 03/17] fuse: prepare for readdir passthrough on directories Joanne Koong
2026-04-21 21:17 ` Darrick J. Wong
2026-04-21 23:12 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 04/17] fuse: implement passthrough for readdir Joanne Koong
2026-04-20 22:16 ` [PATCH v1 05/17] fuse: prepare for long lived reference on backing file Joanne Koong
2026-04-20 22:16 ` [PATCH v1 06/17] fuse: implement passthrough for getattr/statx Joanne Koong
2026-04-20 22:16 ` [PATCH v1 07/17] fuse: prepare to setup backing inode passthrough on lookup Joanne Koong
2026-04-20 22:16 ` [PATCH v1 08/17] fuse: add passthrough ops gating Joanne Koong
2026-04-21 10:48 ` Amir Goldstein
2026-04-22 2:57 ` Joanne Koong
2026-04-22 7:27 ` Amir Goldstein
2026-04-23 1:47 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 09/17] fuse: prepare to cache statx attributes from entry replies Joanne Koong
2026-04-21 12:26 ` Amir Goldstein
2026-04-20 22:16 ` [PATCH v1 10/17] fuse: add struct fuse_entry2_out and helpers for extended " Joanne Koong
2026-04-21 12:25 ` Amir Goldstein
2026-04-22 0:50 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 11/17] fuse: add passthrough lookup Joanne Koong
2026-04-21 13:23 ` Amir Goldstein
2026-04-22 3:17 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 12/17] fuse: add passthrough support for entry creation Joanne Koong
2026-04-21 14:08 ` Amir Goldstein
2026-04-22 3:01 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 13/17] fuse: add passthrough support for atomic file creation Joanne Koong
2026-04-21 19:51 ` Amir Goldstein
2026-04-22 0:40 ` Joanne Koong
2026-04-22 5:10 ` Amir Goldstein
2026-04-20 22:16 ` [PATCH v1 14/17] fuse: use passthrough getattr in setattr suid/sgid handling Joanne Koong
2026-04-21 14:25 ` Amir Goldstein
2026-04-22 3:48 ` Joanne Koong
2026-04-22 5:22 ` Amir Goldstein
2026-04-23 0:03 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 15/17] fuse: add passthrough setattr Joanne Koong
2026-04-21 14:20 ` Amir Goldstein
2026-04-21 14:32 ` Amir Goldstein
2026-04-22 1:09 ` Joanne Koong
2026-04-20 22:16 ` [PATCH v1 16/17] fuse: add passthrough open Joanne Koong
2026-04-21 20:20 ` Amir Goldstein
2026-04-22 4:19 ` Joanne Koong
2026-04-22 4:23 ` Joanne Koong
2026-04-22 6:51 ` Amir Goldstein
2026-04-20 22:16 ` [PATCH v1 17/17] docs: fuse: document extended passthrough (FUSE_PASSTHROUGH_INO) Joanne Koong
2026-04-21 11:09 ` Amir Goldstein
2026-04-22 1:04 ` Joanne Koong
2026-04-21 9:37 ` [PATCH v1 00/17] fuse: extend passthrough to inode operations Amir Goldstein
2026-04-21 13:55 ` Amir Goldstein
2026-04-21 21:05 ` Joanne Koong
2026-04-22 6:02 ` Amir Goldstein
2026-04-23 1:02 ` Joanne Koong
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=20260420221637.2631478-1-joannelkoong@gmail.com \
--to=joannelkoong@gmail.com \
--cc=amir73il@gmail.com \
--cc=fuse-devel@lists.linux.dev \
--cc=luis@igalia.com \
--cc=miklos@szeredi.hu \
/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