diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 9c2695beab86..ce97a2bb0b19 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -450,6 +450,20 @@ static inline int compound_order(struct page *page) | |||
450 | return (unsigned long)page[1].lru.prev; | 450 | return (unsigned long)page[1].lru.prev; |
451 | } | 451 | } |
452 | 452 | ||
453 | static inline int compound_trans_order(struct page *page) | ||
454 | { | ||
455 | int order; | ||
456 | unsigned long flags; | ||
457 | |||
458 | if (!PageHead(page)) | ||
459 | return 0; | ||
460 | |||
461 | flags = compound_lock_irqsave(page); | ||
462 | order = compound_order(page); | ||
463 | compound_unlock_irqrestore(page, flags); | ||
464 | return order; | ||
465 | } | ||
466 | |||
453 | static inline void set_compound_order(struct page *page, unsigned long order) | 467 | static inline void set_compound_order(struct page *page, unsigned long order) |
454 | { | 468 | { |
455 | page[1].lru.prev = (void *)order; | 469 | page[1].lru.prev = (void *)order; |