On 8/29/24 15:45, Miklos Szeredi wrote: > On Thu, 29 Aug 2024 at 15:07, Bernd Schubert <bschubert@xxxxxxx> wrote: > >> Sorry forgot, additionally we (at DDN) will probably also need aligned >> setxattr. > > Hmm, that's trickier. > > I'm thinking that with the uring interface it would be possible to > e.g. give a separate buffer for the header and the payload. But > that's just handwaving, would need to flesh out the details. New fuse-uring rfc should go out today, but I plan to do another change after that to get the buffer layout closer (or hopefully exactly) to the existing buffer layout to avoid differences. Current uring has fuse_in_header/fuse_out_header separated from the request, but then there is still the per request header. We could change it, also for non-uring, but it would be a rather big change. At least for userspace. My personal preference would be something like #define IN_OUT_HEADER_SZ 128 #define REQ_HEADER_SZ 256 struct fuse_header { union { struct fuse_in_header in; struct fuse_out_header out; uint8_t in_out_header[IN_OUT_HEADER_SZ]; }; union { struct fuse_init_in init_in; struct fuse_init_out init_out; struct cuse_init_in cuse_in; struct cuse_init_out cuse_out; ... uint8_t req_header[REQ_HEADER_SZ]; } } And then actual data would follow after. Would solve changes in struct sizes, up to IN_OUT_HEADER_SZ and REQ_HEADER_SZ, but rather cumbersome. Thanks, Bernd