|
@@ -3491,16 +3491,17 @@ static void __mem_cgroup_usage_unregister_event(struct mem_cgroup *memcg,
|
|
|
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 */
|
|
|
synchronize_rcu();
|
|
|
+
|
|
|
+ /* If all events are unregistered, free the spare array */
|
|
|
+ if (!new) {
|
|
|
+ kfree(thresholds->spare);
|
|
|
+ thresholds->spare = NULL;
|
|
|
+ }
|
|
|
unlock:
|
|
|
mutex_unlock(&memcg->thresholds_lock);
|
|
|
}
|