diff options
Diffstat (limited to 'mm/hugetlb.c')
| -rw-r--r-- | mm/hugetlb.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 16a0f32c482..c57740bb203 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -30,6 +30,7 @@  #include <linux/hugetlb.h>  #include <linux/hugetlb_cgroup.h>  #include <linux/node.h> +#include <linux/hugetlb_cgroup.h>  #include "internal.h"  const unsigned long hugetlb_zero = 0, hugetlb_infinity = ~0UL; @@ -1930,6 +1931,13 @@ void __init hugetlb_add_hstate(unsigned order)  	h->next_nid_to_free = first_node(node_states[N_HIGH_MEMORY]);  	snprintf(h->name, HSTATE_NAME_LEN, "hugepages-%lukB",  					huge_page_size(h)/1024); +	/* +	 * Add cgroup control files only if the huge page consists +	 * of more than two normal pages. This is because we use +	 * page[2].lru.next for storing cgoup details. +	 */ +	if (order >= HUGETLB_CGROUP_MIN_ORDER) +		hugetlb_cgroup_file_init(hugetlb_max_hstate - 1);  	parsed_hstate = h;  }  |