diff --git a/MAINTAINERS b/MAINTAINERS
index 0d6469a2cf708d66f7a2a050237c1f250d64f96f..0aedd3e1804bb2b02b01258243728227fa3e208d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2606,7 +2606,7 @@ L:	cgroups@vger.kernel.org
 L:	linux-mm@kvack.org
 S:	Maintained
 F:	mm/memcontrol.c
-F:	mm/page_cgroup.c
+F:	mm/swap_cgroup.c
 
 CORETEMP HARDWARE MONITORING DRIVER
 M:	Fenghua Yu <fenghua.yu@intel.com>
diff --git a/include/linux/page_cgroup.h b/include/linux/swap_cgroup.h
similarity index 88%
rename from include/linux/page_cgroup.h
rename to include/linux/swap_cgroup.h
index 65be35785c866fbf105d522ef1e7953c850b5c92..145306bdc92f59e0b97c8a59bba4cdd2009f29ea 100644
--- a/include/linux/page_cgroup.h
+++ b/include/linux/swap_cgroup.h
@@ -1,15 +1,17 @@
-#ifndef __LINUX_PAGE_CGROUP_H
-#define __LINUX_PAGE_CGROUP_H
+#ifndef __LINUX_SWAP_CGROUP_H
+#define __LINUX_SWAP_CGROUP_H
 
 #include <linux/swap.h>
 
 #ifdef CONFIG_MEMCG_SWAP
+
 extern unsigned short swap_cgroup_cmpxchg(swp_entry_t ent,
 					unsigned short old, unsigned short new);
 extern unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id);
 extern unsigned short lookup_swap_cgroup_id(swp_entry_t ent);
 extern int swap_cgroup_swapon(int type, unsigned long max_pages);
 extern void swap_cgroup_swapoff(int type);
+
 #else
 
 static inline
@@ -37,4 +39,4 @@ static inline void swap_cgroup_swapoff(int type)
 
 #endif /* CONFIG_MEMCG_SWAP */
 
-#endif /* __LINUX_PAGE_CGROUP_H */
+#endif /* __LINUX_SWAP_CGROUP_H */
diff --git a/mm/Makefile b/mm/Makefile
index 6d9f40e922f7e6116970bffadcfb2ac8d8dc46a8..b3c6ce932c64f172b436cd2ec13380180e5891ef 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -56,7 +56,8 @@ obj-$(CONFIG_MIGRATION) += migrate.o
 obj-$(CONFIG_QUICKLIST) += quicklist.o
 obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o
 obj-$(CONFIG_PAGE_COUNTER) += page_counter.o
-obj-$(CONFIG_MEMCG) += memcontrol.o page_cgroup.o vmpressure.o
+obj-$(CONFIG_MEMCG) += memcontrol.o vmpressure.o
+obj-$(CONFIG_MEMCG_SWAP) += swap_cgroup.o
 obj-$(CONFIG_CGROUP_HUGETLB) += hugetlb_cgroup.o
 obj-$(CONFIG_MEMORY_FAILURE) += memory-failure.o
 obj-$(CONFIG_HWPOISON_INJECT) += hwpoison-inject.o
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index b864067791dc9a67135908ae849d4d3b51d90739..ab270e34ba3ef45f00003ebf5d9bd22033ca5f60 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -51,7 +51,7 @@
 #include <linux/seq_file.h>
 #include <linux/vmpressure.h>
 #include <linux/mm_inline.h>
-#include <linux/page_cgroup.h>
+#include <linux/swap_cgroup.h>
 #include <linux/cpu.h>
 #include <linux/oom.h>
 #include <linux/lockdep.h>
diff --git a/mm/page_cgroup.c b/mm/swap_cgroup.c
similarity index 98%
rename from mm/page_cgroup.c
rename to mm/swap_cgroup.c
index f0f31c1d4d0cc05a4aaa5c336fb9bd72ca6bf98d..b5f7f24b8dd15aca941cf7896f806a3dbe16584f 100644
--- a/mm/page_cgroup.c
+++ b/mm/swap_cgroup.c
@@ -1,9 +1,8 @@
-#include <linux/mm.h>
-#include <linux/page_cgroup.h>
+#include <linux/swap_cgroup.h>
 #include <linux/vmalloc.h>
-#include <linux/swapops.h>
+#include <linux/mm.h>
 
-#ifdef CONFIG_MEMCG_SWAP
+#include <linux/swapops.h> /* depends on mm.h include */
 
 static DEFINE_MUTEX(swap_cgroup_mutex);
 struct swap_cgroup_ctrl {
@@ -207,5 +206,3 @@ void swap_cgroup_swapoff(int type)
 		vfree(map);
 	}
 }
-
-#endif
diff --git a/mm/swap_state.c b/mm/swap_state.c
index 1544449186858a42f5cb5076e028f269e238b3a9..9711342987a05f383687b3a6175bee052c10ef42 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -17,7 +17,6 @@
 #include <linux/blkdev.h>
 #include <linux/pagevec.h>
 #include <linux/migrate.h>
-#include <linux/page_cgroup.h>
 
 #include <asm/pgtable.h>
 
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 8798b2e0ac594a21e9ab624b7ce9373172eb12ae..63f55ccb9b260d695ac8e9ae0635014a2c5746af 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -38,7 +38,7 @@
 #include <asm/pgtable.h>
 #include <asm/tlbflush.h>
 #include <linux/swapops.h>
-#include <linux/page_cgroup.h>
+#include <linux/swap_cgroup.h>
 
 static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
 				 unsigned char);