diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2019-09-10 15:04:09 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2019-09-10 16:29:49 +0200 |
commit | 68583165f962793a6fe7d11f54713045f43fc8bb (patch) | |
tree | 2c38f8b25f8619d19450f2d483496b4ae49eeb54 /fs/fuse/fuse_i.h | |
parent | fuse: convert destroy to simple api (diff) | |
download | linux-68583165f962793a6fe7d11f54713045f43fc8bb.tar.xz linux-68583165f962793a6fe7d11f54713045f43fc8bb.zip |
fuse: add pages to fuse_args
Derive fuse_args_pages from fuse_args. This is used to handle requests
which use pages for input or output. The related flags are added to
fuse_args.
New FR_ALLOC_PAGES flags is added to indicate whether the page arrays in
fuse_req need to be freed by fuse_put_request() or not.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 73f70f3872e7..1998d6ab4025 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -294,11 +294,22 @@ struct fuse_args { bool force:1; bool noreply:1; bool nocreds:1; + bool in_pages:1; + bool out_pages:1; bool out_argvar:1; + bool page_zeroing:1; + bool page_replace:1; struct fuse_in_arg in_args[3]; struct fuse_arg out_args[2]; }; +struct fuse_args_pages { + struct fuse_args args; + struct page **pages; + struct fuse_page_desc *descs; + unsigned int num_pages; +}; + #define FUSE_ARGS(args) struct fuse_args args = {} /** The request IO state (for asynchronous processing) */ @@ -352,6 +363,7 @@ enum fuse_req_flag { FR_SENT, FR_FINISHED, FR_PRIVATE, + FR_ALLOC_PAGES, }; /** |