From: Baokun Li <libaokun@linux.alibaba.com>
To: fuse-devel@lists.linux.dev
Cc: bernd@bsbernd.com, miklos@szeredi.hu
Subject: [PATCH 0/2] libfuse: add support for FUSE_NOTIFY_RESEND
Date: Fri, 9 Oct 2026 15:54:14 +0800 [thread overview]
Message-ID: <20261009075417.2521879-1-libaokun@linux.alibaba.com> (raw)
Hi all,
The FUSE kernel driver supports re-queuing requests that were already
sent to a daemon but never answered, e.g. to recover in-flight requests
after a daemon takeover. The kernel side was added in Linux 6.9,
protocol 7.40 (FUSE_NOTIFY_RESEND / FUSE_HAS_RESEND), but libfuse has
no way to use it yet.
Patch 1 adds fuse_lowlevel_notify_resend() to send the notification,
exposes kernel support through the new FUSE_CAP_HAS_RESEND capability
and adds fuse_req_is_resend() so that file systems can detect resent
requests via the FUSE_UNIQUE_RESEND bit in the request ID and handle
them idempotently.
Patch 2 adds a self-contained regression test: the daemon drops the
first GETATTR of a file, triggers a resend and expects the request to
come back with FUSE_UNIQUE_RESEND set before answering it.
Testing
=======
The new test passes on Linux 7.3-rc3 (protocol 7.46). It skips on
kernels without FUSE_HAS_RESEND support and over the io-uring
transport, which recovers requests on its own.
Comments and questions are, as always, welcome.
Thanks,
Baokun
Baokun Li (2):
fuse_lowlevel: add support for FUSE_NOTIFY_RESEND
test: exercise FUSE_NOTIFY_RESEND
ChangeLog.rst | 7 +
doc/README.notifications | 2 +-
include/fuse_common.h | 13 ++
include/fuse_lowlevel.h | 28 ++++
lib/fuse_cap_names_i.h | 1 +
lib/fuse_lowlevel.c | 23 +++
lib/fuse_versionscript | 2 +
test/cases/ctests/notify-resend.sh | 18 +++
test/meson.build | 3 +
test/test_notify_resend.c | 216 +++++++++++++++++++++++++++++
10 files changed, 312 insertions(+), 1 deletion(-)
create mode 100755 test/cases/ctests/notify-resend.sh
create mode 100644 test/test_notify_resend.c
base-commit: cb2e761c763559f40e41090aabf008f665f27889
--
2.43.7
next reply other threads:[~2026-10-09 7:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 7:54 Baokun Li [this message]
2026-10-09 7:54 ` [PATCH 1/2] fuse_lowlevel: add support for FUSE_NOTIFY_RESEND Baokun Li
2026-10-09 7:54 ` [PATCH 2/2] test: exercise FUSE_NOTIFY_RESEND Baokun Li
2026-10-09 8:19 ` Bernd Schubert
2026-10-09 9:31 ` Baokun Li
2026-10-09 13:51 ` Luis Henriques
2026-10-10 2:33 ` Baokun Li
2026-10-13 8:32 ` 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=20261009075417.2521879-1-libaokun@linux.alibaba.com \
--to=libaokun@linux.alibaba.com \
--cc=bernd@bsbernd.com \
--cc=fuse-devel@lists.linux.dev \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.