From 2c6707d5b92eea4f808517df2635cb5bf0a88ff9 Mon Sep 17 00:00:00 2001 From: Paul Jackson Date: Sun, 8 Jan 2006 01:01:52 -0800 Subject: [PATCH] --- yaml --- r: 16903 b: refs/heads/master c: 59dac16fb95f09253b8086134443abeb439703cd h: refs/heads/master i: 16901: a05701710c6128aee492bc57fb398fab1de2b2b2 16899: 4614fb1dbb7f47e8e8a2337c7b42f5894f9bae76 16895: a85d3e6e5abd1aa966e773f78ae5fd6257f8cfd6 v: v3 --- [refs] | 2 +- trunk/kernel/cpuset.c | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index e8152b259ab8..07ad7634af58 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c5b2aff89635495064592dc90da595f8a880ee87 +refs/heads/master: 59dac16fb95f09253b8086134443abeb439703cd diff --git a/trunk/kernel/cpuset.c b/trunk/kernel/cpuset.c index f513dd937eee..3ea63da11d71 100644 --- a/trunk/kernel/cpuset.c +++ b/trunk/kernel/cpuset.c @@ -799,18 +799,23 @@ static int update_nodemask(struct cpuset *cs, char *buf) trialcs = *cs; retval = nodelist_parse(buf, trialcs.mems_allowed); if (retval < 0) - return retval; + goto done; nodes_and(trialcs.mems_allowed, trialcs.mems_allowed, node_online_map); - if (nodes_empty(trialcs.mems_allowed)) - return -ENOSPC; - retval = validate_change(cs, &trialcs); - if (retval == 0) { - down(&callback_sem); - cs->mems_allowed = trialcs.mems_allowed; - atomic_inc(&cpuset_mems_generation); - cs->mems_generation = atomic_read(&cpuset_mems_generation); - up(&callback_sem); + if (nodes_empty(trialcs.mems_allowed)) { + retval = -ENOSPC; + goto done; } + retval = validate_change(cs, &trialcs); + if (retval < 0) + goto done; + + down(&callback_sem); + cs->mems_allowed = trialcs.mems_allowed; + atomic_inc(&cpuset_mems_generation); + cs->mems_generation = atomic_read(&cpuset_mems_generation); + up(&callback_sem); + +done: return retval; }