diff options
| -rw-r--r-- | include/linux/page-flags.h | 20 | ||||
| -rw-r--r-- | mm/memory-failure.c | 2 | 
2 files changed, 21 insertions, 1 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index e90a673be67..6b25758e028 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -414,11 +414,26 @@ static inline int PageTransHuge(struct page *page)  	return PageHead(page);  } +/* + * PageTransCompound returns true for both transparent huge pages + * and hugetlbfs pages, so it should only be called when it's known + * that hugetlbfs pages aren't involved. + */  static inline int PageTransCompound(struct page *page)  {  	return PageCompound(page);  } +/* + * PageTransTail returns true for both transparent huge pages + * and hugetlbfs pages, so it should only be called when it's known + * that hugetlbfs pages aren't involved. + */ +static inline int PageTransTail(struct page *page) +{ +	return PageTail(page); +} +  #else  static inline int PageTransHuge(struct page *page) @@ -430,6 +445,11 @@ static inline int PageTransCompound(struct page *page)  {  	return 0;  } + +static inline int PageTransTail(struct page *page) +{ +	return 0; +}  #endif  #ifdef CONFIG_MMU diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 56080ea3614..c22076ffdd4 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1063,7 +1063,7 @@ int __memory_failure(unsigned long pfn, int trapno, int flags)  	 * The check (unnecessarily) ignores LRU pages being isolated and  	 * walked by the page reclaim code, however that's not a big loss.  	 */ -	if (!PageHuge(p) && !PageTransCompound(p)) { +	if (!PageHuge(p) && !PageTransTail(p)) {  		if (!PageLRU(p))  			shake_page(p, 0);  		if (!PageLRU(p)) {  |