|
@@ -4507,6 +4507,12 @@ static void mem_cgroup_usage_unregister_event(struct cgroup *cgrp,
|
|
|
swap_buffers:
|
|
|
/* Swap primary and spare array */
|
|
|
thresholds->spare = thresholds->primary;
|
|
|
+ /* If all events are unregistered, free the spare array */
|
|
|
+ if (!new) {
|
|
|
+ kfree(thresholds->spare);
|
|
|
+ thresholds->spare = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
rcu_assign_pointer(thresholds->primary, new);
|
|
|
|
|
|
/* To be sure that nobody uses thresholds */
|