All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] libfuse: add support for FUSE_NOTIFY_RESEND
@ 2026-10-09  7:54 Baokun Li
  2026-10-09  7:54 ` [PATCH 1/2] fuse_lowlevel: " Baokun Li
  2026-10-09  7:54 ` [PATCH 2/2] test: exercise FUSE_NOTIFY_RESEND Baokun Li
  0 siblings, 2 replies; 8+ messages in thread
From: Baokun Li @ 2026-10-09  7:54 UTC (permalink / raw)
  To: fuse-devel; +Cc: bernd, miklos

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-10-13  8:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-09  7:54 [PATCH 0/2] libfuse: add support for FUSE_NOTIFY_RESEND Baokun Li
2026-10-09  7:54 ` [PATCH 1/2] fuse_lowlevel: " 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

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.