On 8/21/24 18:18, Miklos Szeredi wrote: > On Wed, 21 Aug 2024 at 17:55, Bernd Schubert <bernd.schubert@xxxxxxxxxxx> wrote: > >> But how would fuse_file_open() know how to send a sequence of requests? > > It would just send a FUSE_COMPOUND request, which contains a > FUSE_GETATTR and a FUSE_OPEN request. > >> I don't see an issue to decode that on the server side into multiple >> requests, but how do we process the result in fuse-client? For fg >> requests we have exactly request that gets processed by the vfs >> operaration sending a request - how would that look like with compounds? > > AFAIU compunds in NFS4 bundle multiple request into one which the > server processes sequentially and the results are also returned in a > bundle. > > That's just the protocol, the server and the client can use this in > any way that conforms to the protocol. > >> >> Or do I totally misunderstand you and you want to use compounds to avoid >> the uber struct for atomic-open? At least we still need to add in the >> ATOMIC_OPEN_IS_OPEN_GETATTR flag there and actually another like >> ATOMIC_OPEN_IS_DIRECTORY. > > Yes, the main advantage would be to avoid having to add new request > types for things that are actually just the aggregation of multiple > existing request types. Thanks, that simplifies things for fuse kernel. I'm still thinking about what is the best way for fuse server. Traveling (back home) the next days - will come with a new patch next week. Thanks, Bernd