From 2474c3a95c847c91b9ce2dc14a391c7aa7a7790c Mon Sep 17 00:00:00 2001 From: Lee Schermerhorn Date: Tue, 29 Jun 2010 15:05:30 -0700 Subject: [PATCH] --- yaml --- r: 200644 b: refs/heads/master c: 5c0c165490e763eddcbb0b6c8c41ab5cc11ddea0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/mempolicy.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 0d4b770c8435..92b065684d94 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 56480287f9776adc5b1a7a335ef62a9b9879ad7f +refs/heads/master: 5c0c165490e763eddcbb0b6c8c41ab5cc11ddea0 diff --git a/trunk/mm/mempolicy.c b/trunk/mm/mempolicy.c index 5d6fb339de03..5bc0a96beb51 100644 --- a/trunk/mm/mempolicy.c +++ b/trunk/mm/mempolicy.c @@ -2094,7 +2094,7 @@ void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol) NODEMASK_SCRATCH(scratch); if (!scratch) - return; + goto put_mpol; /* contextualize the tmpfs mount point mempolicy */ new = mpol_new(mpol->mode, mpol->flags, &mpol->w.user_nodemask); if (IS_ERR(new)) @@ -2103,19 +2103,20 @@ void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol) task_lock(current); ret = mpol_set_nodemask(new, &mpol->w.user_nodemask, scratch); task_unlock(current); - mpol_put(mpol); /* drop our ref on sb mpol */ if (ret) - goto put_free; + goto put_new; /* Create pseudo-vma that contains just the policy */ memset(&pvma, 0, sizeof(struct vm_area_struct)); pvma.vm_end = TASK_SIZE; /* policy covers entire file */ mpol_set_shared_policy(sp, &pvma, new); /* adds ref */ -put_free: +put_new: mpol_put(new); /* drop initial ref */ free_scratch: NODEMASK_SCRATCH_FREE(scratch); +put_mpol: + mpol_put(mpol); /* drop our incoming ref on sb mpol */ } }