lkml.org 
[lkml]   [2012]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] Round up huge page count to avoid allocating too little memory when 'size' argument is not a multiple of the huge page size.
    Date
    Signed-off-by: Steven Truelove <steven.truelove@utoronto.ca>
    ---
    fs/hugetlbfs/inode.c | 8 +++++---
    1 files changed, 5 insertions(+), 3 deletions(-)

    diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
    index 1e85a7a..fce2527 100644
    --- a/fs/hugetlbfs/inode.c
    +++ b/fs/hugetlbfs/inode.c
    @@ -938,6 +938,8 @@ struct file *hugetlb_file_setup(const char *name, size_t size,
    struct path path;
    struct dentry *root;
    struct qstr quick_string;
    + struct hstate *hstate;
    + int num_pages;

    *user = NULL;
    if (!hugetlbfs_vfsmount)
    @@ -967,10 +969,10 @@ struct file *hugetlb_file_setup(const char *name, size_t size,
    if (!inode)
    goto out_dentry;

    + hstate = hstate_inode(inode);
    + num_pages = (size + huge_page_size(hstate) - 1) >> huge_page_shift(hstate);
    error = -ENOMEM;
    - if (hugetlb_reserve_pages(inode, 0,
    - size >> huge_page_shift(hstate_inode(inode)), NULL,
    - acctflag))
    + if (hugetlb_reserve_pages(inode, 0, num_pages, NULL, acctflag))
    goto out_inode;

    d_instantiate(path.dentry, inode);
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2012-02-23 15:33    [W:0.019 / U:32.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site