diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2022-11-10 17:46:33 +0300 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2023-01-26 19:10:37 +0300 |
commit | 15d937d7ca8c55d2b0ce9116e20c780fdd0b67cc (patch) | |
tree | c679eb27d286dc1630806095c040ef3de951247a /fs/fuse/fuse_i.h | |
parent | 1b929c02afd37871d5afb9d498426f83432e71c2 (diff) | |
download | linux-15d937d7ca8c55d2b0ce9116e20c780fdd0b67cc.tar.xz |
fuse: add request extension
Will need to add supplementary groups to create messages, so add the
general concept of a request extension. A request extension is appended to
the end of the main request. It has a header indicating the size and type
of the extension.
The create security context (fuse_secctx_*) is similar to the generic
request extension, so include that as well in a backward compatible manner.
Add the total extension length to the request header. The offset of the
extension block within the request can be calculated by:
inh->len - inh->total_extlen * 8
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index c673faefdcb9..ac300f14aa2d 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -249,8 +249,9 @@ struct fuse_page_desc { struct fuse_args { uint64_t nodeid; uint32_t opcode; - unsigned short in_numargs; - unsigned short out_numargs; + uint8_t in_numargs; + uint8_t out_numargs; + uint8_t ext_idx; bool force:1; bool noreply:1; bool nocreds:1; @@ -261,6 +262,7 @@ struct fuse_args { bool page_zeroing:1; bool page_replace:1; bool may_block:1; + bool is_ext:1; struct fuse_in_arg in_args[3]; struct fuse_arg out_args[2]; void (*end)(struct fuse_mount *fm, struct fuse_args *args, int error); |