public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/3] fuse: compound commands
@ 2026-02-10  8:46 Horst Birthelmer
  2026-02-10  8:46 ` [PATCH v5 1/3] fuse: add compound command to combine multiple requests Horst Birthelmer
                   ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Horst Birthelmer @ 2026-02-10  8:46 UTC (permalink / raw)
  To: Miklos Szeredi, Bernd Schubert, Joanne Koong, Luis Henriques
  Cc: linux-kernel, linux-fsdevel, Horst Birthelmer

In the discussion about open+getattr here [1] Bernd and Miklos talked
about the need for a compound command in fuse that could send multiple
commands to a fuse server.
    
Here's a propsal for exactly that compound command with an example
(the mentioned open+getattr).
    
The pull request for libfuse is here [2]
That pull request contains a patch for handling compounds 
and a patch for passthrough_hp that demonstrates multiple ways of
handling a compound. Either calling the helper in libfuse to decode and 
execute every request sequencially or decoding and handling it in the
fuse server itself.

[1] https://lore.kernel.org/linux-fsdevel/CAJfpegshcrjXJ0USZ8RRdBy=e0MxmBTJSCE0xnxG8LXgXy-xuQ@mail.gmail.com/
[2] https://github.com/libfuse/libfuse/pull/1418

Signed-off-by: Horst Birthelmer <hbirthelmer@ddn.com>
---
Changes in v5:
- introduced the flag FUSE_COMPOUND_SEPARABLE as discussed here
- simplify result parsing and streamline the code
- simplify the result and error handling for open+getattr
- fixed a couple of issues pointed out by Joanne
- Link to v4: https://lore.kernel.org/r/20260109-fuse-compounds-upstream-v4-0-0d3b82a4666f@ddn.com

Changes in v4:
- removed RFC 
- removed the unnecessary 'parsed' variable in fuse_compound_req, since
  we parse the result only once
- reordered the patches about the helper functions to fill in the fuse
  args for open and getattr calls
- Link to v3: https://lore.kernel.org/r/20260108-fuse-compounds-upstream-v3-0-8dc91ebf3740@ddn.com

Changes in v3:
- simplified the data handling for compound commands
- remove the validating functionality, since it was only a helper for
  development
- remove fuse_compound_request() and use fuse_simple_request()
- add helper functions for creating args for open and attr
- use the newly createn helper functions for arg creation for open and
  getattr
- Link to v2: https://lore.kernel.org/r/20251223-fuse-compounds-upstream-v2-0-0f7b4451c85e@ddn.com

Changes in v2:
- fixed issues with error handling in the compounds as well as in the
  open+getattr
- Link to v1: https://lore.kernel.org/r/20251223-fuse-compounds-upstream-v1-0-7bade663947b@ddn.com

---
Horst Birthelmer (3):
      fuse: add compound command to combine multiple requests
      fuse: create helper functions for filling in fuse args for open and getattr
      fuse: add an implementation of open+getattr

 fs/fuse/Makefile          |   2 +-
 fs/fuse/compound.c        | 224 ++++++++++++++++++++++++++++++++++++++++++++++
 fs/fuse/dir.c             |  26 ++++--
 fs/fuse/file.c            | 137 +++++++++++++++++++++++-----
 fs/fuse/fuse_i.h          |  24 ++++-
 fs/fuse/inode.c           |   6 ++
 fs/fuse/ioctl.c           |   2 +-
 include/uapi/linux/fuse.h |  40 +++++++++
 8 files changed, 426 insertions(+), 35 deletions(-)
---
base-commit: 63804fed149a6750ffd28610c5c1c98cce6bd377
change-id: 20251223-fuse-compounds-upstream-c85b4e39b3d3

Best regards,
-- 
Horst Birthelmer <hbirthelmer@ddn.com>


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

end of thread, other threads:[~2026-03-06  8:17 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10  8:46 [PATCH v5 0/3] fuse: compound commands Horst Birthelmer
2026-02-10  8:46 ` [PATCH v5 1/3] fuse: add compound command to combine multiple requests Horst Birthelmer
2026-02-11 14:59   ` Luis Henriques
2026-02-11 16:18     ` Horst Birthelmer
2026-02-11 16:13   ` Miklos Szeredi
2026-02-11 16:35     ` Horst Birthelmer
2026-02-12  9:38       ` Miklos Szeredi
2026-02-12  9:53         ` Horst Birthelmer
2026-02-12 10:23           ` Miklos Szeredi
2026-02-12 10:48             ` Horst Birthelmer
2026-02-12 12:10               ` Miklos Szeredi
2026-02-12 12:33                 ` Horst Birthelmer
2026-02-14  1:04                   ` Joanne Koong
2026-02-11 20:36     ` Bernd Schubert
2026-02-12  9:07       ` Miklos Szeredi
2026-02-12  9:48         ` Bernd Schubert
2026-02-12 10:16           ` Miklos Szeredi
2026-02-12 10:43             ` Bernd Schubert
2026-02-12 11:44               ` Horst Birthelmer
2026-02-14  1:35                 ` Joanne Koong
2026-02-14 12:54                   ` Bernd Schubert
2026-02-14 17:50                   ` Re: " Horst Birthelmer
2026-02-16 11:43                     ` Miklos Szeredi
2026-02-16 15:22                       ` Miklos Szeredi
2026-02-17  7:26                         ` Horst Birthelmer
2026-02-17  7:28                       ` Horst Birthelmer
2026-03-06  0:52                     ` Joanne Koong
2026-03-06  8:17                       ` Horst Birthelmer
2026-02-12 11:55               ` Miklos Szeredi
2026-02-10  8:46 ` [PATCH v5 2/3] fuse: create helper functions for filling in fuse args for open and getattr Horst Birthelmer
2026-02-10  8:46 ` [PATCH v5 3/3] fuse: add an implementation of open+getattr Horst Birthelmer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox