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;
 }