fuse: move page alloc
authorMiklos Szeredi <mszeredi@redhat.com>
Tue, 10 Sep 2019 13:04:09 +0000 (15:04 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Tue, 10 Sep 2019 14:29:49 +0000 (16:29 +0200)
fuse_req_pages_alloc() is moved to file.c, since its internal use by the
device code will eventually be removed.

Rename to fuse_pages_alloc() to signify that it's not only usable for
fuse_req page array.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dev.c
fs/fuse/file.c
fs/fuse/fuse_i.h

index 3ef85c957122abf68f41d56ba35050168ffa2a78..0a6624aeced94f8c9ab236e7d75706054f457ca2 100644 (file)
@@ -54,18 +54,6 @@ static void fuse_request_init(struct fuse_req *req, struct page **pages,
        __set_bit(FR_PENDING, &req->flags);
 }
 
-static struct page **fuse_req_pages_alloc(unsigned int npages, gfp_t flags,
-                                         struct fuse_page_desc **desc)
-{
-       struct page **pages;
-
-       pages = kzalloc(npages * (sizeof(struct page *) +
-                                 sizeof(struct fuse_page_desc)), flags);
-       *desc = (void *) pages + npages * sizeof(struct page *);
-
-       return pages;
-}
-
 static struct fuse_req *__fuse_request_alloc(unsigned npages, gfp_t flags)
 {
        struct fuse_req *req = kmem_cache_zalloc(fuse_req_cachep, flags);
@@ -75,8 +63,7 @@ static struct fuse_req *__fuse_request_alloc(unsigned npages, gfp_t flags)
 
                WARN_ON(npages > FUSE_MAX_MAX_PAGES);
                if (npages > FUSE_REQ_INLINE_PAGES) {
-                       pages = fuse_req_pages_alloc(npages, flags,
-                                                    &page_descs);
+                       pages = fuse_pages_alloc(npages, flags, &page_descs);
                        if (!pages) {
                                kmem_cache_free(fuse_req_cachep, req);
                                return NULL;
@@ -120,7 +107,7 @@ bool fuse_req_realloc_pages(struct fuse_conn *fc, struct fuse_req *req,
                                    fc->max_pages);
        WARN_ON(npages <= req->max_pages);
 
-       pages = fuse_req_pages_alloc(npages, flags, &page_descs);
+       pages = fuse_pages_alloc(npages, flags, &page_descs);
        if (!pages)
                return false;
 
index 53f2cc6970f1616e3e3b4f8e4be909c022ed9926..c3e95002f489f041b7df7ec298ee9fddea1a68d6 100644 (file)
 #include <linux/falloc.h>
 #include <linux/uio.h>
 
+struct page **fuse_pages_alloc(unsigned int npages, gfp_t flags,
+                              struct fuse_page_desc **desc)
+{
+       struct page **pages;
+
+       pages = kzalloc(npages * (sizeof(struct page *) +
+                                 sizeof(struct fuse_page_desc)), flags);
+       *desc = (void *) (pages + npages);
+
+       return pages;
+}
+
 static int fuse_send_open(struct fuse_conn *fc, u64 nodeid, struct file *file,
                          int opcode, struct fuse_open_out *outargp)
 {
index 1998d6ab40256d3b1ff33159dc5d9dd97eef6ab7..b62a3e37ea4c77df4604310626d099d5ccc16d6c 100644 (file)
@@ -909,6 +909,8 @@ struct fuse_req *fuse_request_alloc(unsigned npages);
 
 struct fuse_req *fuse_request_alloc_nofs(unsigned npages);
 
+struct page **fuse_pages_alloc(unsigned int npages, gfp_t flags,
+                              struct fuse_page_desc **desc);
 bool fuse_req_realloc_pages(struct fuse_conn *fc, struct fuse_req *req,
                            gfp_t flags);