lkml.org 
[lkml]   [2015]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC v7 35/41] sunrpc: Allow to demand-allocate pages to encode into
    Date
    When encoding large, variable-length objects such as acls into xdr_bufs,
    it is easier to allocate buffer pages on demand rather than precomputing
    the required buffer size.

    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    ---
    net/sunrpc/xdr.c | 9 +++++++++
    1 file changed, 9 insertions(+)

    diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
    index 4439ac4..63c1c36 100644
    --- a/net/sunrpc/xdr.c
    +++ b/net/sunrpc/xdr.c
    @@ -537,6 +537,15 @@ static __be32 *xdr_get_next_encode_buffer(struct xdr_stream *xdr,
    */
    xdr->scratch.iov_base = xdr->p;
    xdr->scratch.iov_len = frag1bytes;
    +
    + if (!*xdr->page_ptr) {
    + struct page *page = alloc_page(GFP_NOFS);
    +
    + if (!page)
    + return NULL;
    + *xdr->page_ptr = page;
    + }
    +
    p = page_address(*xdr->page_ptr);
    /*
    * Note this is where the next encode will start after we've
    --
    2.4.3


    \
     
     \ /
      Last update: 2015-09-05 13:01    [W:4.350 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site