Commit 05ea48cc authored by Miklos Szeredi's avatar Miklos Szeredi

fuse: stop copying pages to fuse_req

The page array pointers are also duplicated across fuse_args_pages and
fuse_req.  Get rid of the fuse_req ones.
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent d4993774
...@@ -448,15 +448,8 @@ static void fuse_force_creds(struct fuse_conn *fc, struct fuse_req *req) ...@@ -448,15 +448,8 @@ static void fuse_force_creds(struct fuse_conn *fc, struct fuse_req *req)
void fuse_args_to_req(struct fuse_req *req, struct fuse_args *args) void fuse_args_to_req(struct fuse_req *req, struct fuse_args *args)
{ {
struct fuse_args_pages *ap = container_of(args, typeof(*ap), args);
req->in.h.opcode = args->opcode; req->in.h.opcode = args->opcode;
req->in.h.nodeid = args->nodeid; req->in.h.nodeid = args->nodeid;
if (args->in_pages || args->out_pages) {
req->pages = ap->pages;
req->page_descs = ap->descs;
req->num_pages = ap->num_pages;
}
req->args = args; req->args = args;
} }
...@@ -939,14 +932,15 @@ static int fuse_copy_pages(struct fuse_copy_state *cs, unsigned nbytes, ...@@ -939,14 +932,15 @@ static int fuse_copy_pages(struct fuse_copy_state *cs, unsigned nbytes,
{ {
unsigned i; unsigned i;
struct fuse_req *req = cs->req; struct fuse_req *req = cs->req;
struct fuse_args_pages *ap = container_of(req->args, typeof(*ap), args);
for (i = 0; i < req->num_pages && (nbytes || zeroing); i++) { for (i = 0; i < ap->num_pages && (nbytes || zeroing); i++) {
int err; int err;
unsigned offset = req->page_descs[i].offset; unsigned int offset = ap->descs[i].offset;
unsigned count = min(nbytes, req->page_descs[i].length); unsigned int count = min(nbytes, ap->descs[i].length);
err = fuse_copy_page(cs, &req->pages[i], offset, count, err = fuse_copy_page(cs, &ap->pages[i], offset, count, zeroing);
zeroing);
if (err) if (err)
return err; return err;
......
...@@ -353,15 +353,6 @@ struct fuse_req { ...@@ -353,15 +353,6 @@ struct fuse_req {
/** Used to wake up the task waiting for completion of request*/ /** Used to wake up the task waiting for completion of request*/
wait_queue_head_t waitq; wait_queue_head_t waitq;
/** page vector */
struct page **pages;
/** page-descriptor vector */
struct fuse_page_desc *page_descs;
/** number of pages in vector */
unsigned num_pages;
}; };
struct fuse_iqueue { struct fuse_iqueue {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment