cgroup/cpuset: Fix a memory leak in update_exclusive_cpumask()
[linux-2.6-microblaze.git] / kernel / cgroup / cpuset.c
index ba36c07..7260f09 100644 (file)
@@ -2598,9 +2598,6 @@ static int update_exclusive_cpumask(struct cpuset *cs, struct cpuset *trialcs,
        if (cpumask_equal(cs->exclusive_cpus, trialcs->exclusive_cpus))
                return 0;
 
-       if (alloc_cpumasks(NULL, &tmp))
-               return -ENOMEM;
-
        if (*buf)
                compute_effective_exclusive_cpumask(trialcs, NULL);
 
@@ -2615,6 +2612,9 @@ static int update_exclusive_cpumask(struct cpuset *cs, struct cpuset *trialcs,
        if (retval)
                return retval;
 
+       if (alloc_cpumasks(NULL, &tmp))
+               return -ENOMEM;
+
        if (old_prs) {
                if (cpumask_empty(trialcs->effective_xcpus)) {
                        invalidate = true;