|
@@ -1193,11 +1193,13 @@ static inline void memcg_memory_allocated_add(struct cg_proto *prot,
|
|
unsigned long amt,
|
|
unsigned long amt,
|
|
int *parent_status)
|
|
int *parent_status)
|
|
{
|
|
{
|
|
- page_counter_charge(&prot->memory_allocated, amt);
|
|
|
|
|
|
+ struct page_counter *counter;
|
|
|
|
+
|
|
|
|
+ if (page_counter_try_charge(&prot->memory_allocated, amt, &counter))
|
|
|
|
+ return;
|
|
|
|
|
|
- if (page_counter_read(&prot->memory_allocated) >
|
|
|
|
- prot->memory_allocated.limit)
|
|
|
|
- *parent_status = OVER_LIMIT;
|
|
|
|
|
|
+ page_counter_charge(&prot->memory_allocated, amt);
|
|
|
|
+ *parent_status = OVER_LIMIT;
|
|
}
|
|
}
|
|
|
|
|
|
static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
|
|
static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
|