diff --git a/include/linux/mm.h b/include/linux/mm.h index 24659ed06baedce5aa0e4de8ff96c2f2fa6dce5d..4f3c1b2f44de78a7e0ea4533ac868426b37352f8 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -605,9 +605,12 @@ static inline struct address_space *page_mapping(struct page *page) struct address_space *mapping = page->mapping; VM_BUG_ON(PageSlab(page)); +#ifdef CONFIG_SWAP if (unlikely(PageSwapCache(page))) mapping = &swapper_space; - else if (unlikely((unsigned long)mapping & PAGE_MAPPING_ANON)) + else +#endif + if (unlikely((unsigned long)mapping & PAGE_MAPPING_ANON)) mapping = NULL; return mapping; }