]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
NFS: move nfs_pgarray_set() to open code
authorBenjamin Coddington <bcodding@redhat.com>
Wed, 19 Apr 2017 14:11:34 +0000 (10:11 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 20 Apr 2017 17:55:16 +0000 (13:55 -0400)
Since commit 00bfa30abe86 ("NFS: Create a common pgio_alloc and
pgio_release function"), nfs_pgarray_set() has only a single caller.  Let's
open code it.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pagelist.c

index 7d83f3acdca1890a59d09fe937b684257993e11b..453255c30fa1c0fa28e139bbc23578709f5f3061 100644 (file)
 static struct kmem_cache *nfs_page_cachep;
 static const struct rpc_call_ops nfs_pgio_common_ops;
 
-static bool nfs_pgarray_set(struct nfs_page_array *p, unsigned int pagecount,
-                                       gfp_t gfp_flags)
-{
-       p->npages = pagecount;
-       if (pagecount <= ARRAY_SIZE(p->page_array))
-               p->pagevec = p->page_array;
-       else {
-               p->pagevec = kcalloc(pagecount, sizeof(struct page *), gfp_flags);
-               if (!p->pagevec)
-                       p->npages = 0;
-       }
-       return p->pagevec != NULL;
-}
-
 struct nfs_pgio_mirror *
 nfs_pgio_current_mirror(struct nfs_pageio_descriptor *desc)
 {
@@ -758,16 +744,24 @@ int nfs_generic_pgio(struct nfs_pageio_descriptor *desc,
                                *last_page;
        struct list_head *head = &mirror->pg_list;
        struct nfs_commit_info cinfo;
+       struct nfs_page_array *pg_array = &hdr->page_array;
        unsigned int pagecount, pageused;
        gfp_t gfp_flags = GFP_KERNEL;
 
        pagecount = nfs_page_array_len(mirror->pg_base, mirror->pg_count);
-       if (desc->pg_rw_ops->rw_mode == FMODE_WRITE)
-               gfp_flags = GFP_NOIO;
-       if (!nfs_pgarray_set(&hdr->page_array, pagecount, gfp_flags)) {
-               nfs_pgio_error(hdr);
-               desc->pg_error = -ENOMEM;
-               return desc->pg_error;
+
+       if (pagecount <= ARRAY_SIZE(pg_array->page_array))
+               pg_array->pagevec = pg_array->page_array;
+       else {
+               if (desc->pg_rw_ops->rw_mode == FMODE_WRITE)
+                       gfp_flags = GFP_NOIO;
+               pg_array->pagevec = kcalloc(pagecount, sizeof(struct page *), gfp_flags);
+               if (!pg_array->pagevec) {
+                       pg_array->npages = 0;
+                       nfs_pgio_error(hdr);
+                       desc->pg_error = -ENOMEM;
+                       return desc->pg_error;
+               }
        }
 
        nfs_init_cinfo(&cinfo, desc->pg_inode, desc->pg_dreq);