diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 395fd8e4166a9840b489e3120650da9f48bcc19d..c5285afe2048985f0c61d1a0430522107adf7c38 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -591,7 +591,6 @@ static int mem_cgroup_charge_common(struct page *page, struct mm_struct *mm,
 			mem_cgroup_out_of_memory(mem, gfp_mask);
 			goto out;
 		}
-		congestion_wait(WRITE, HZ/10);
 	}
 
 	pc->ref_cnt = 1;
@@ -599,7 +598,7 @@ static int mem_cgroup_charge_common(struct page *page, struct mm_struct *mm,
 	pc->page = page;
 	pc->flags = PAGE_CGROUP_FLAG_ACTIVE;
 	if (ctype == MEM_CGROUP_CHARGE_TYPE_CACHE)
-		pc->flags |= PAGE_CGROUP_FLAG_CACHE;
+		pc->flags = PAGE_CGROUP_FLAG_CACHE;
 
 	lock_page_cgroup(page);
 	if (page_get_page_cgroup(page)) {