Messages in this thread | | | From | Paul Menage <> | Date | Thu, 17 Feb 2011 15:50:01 -0800 | Subject | Re: [PATCH 3/4] cpuset: Fix unchecked calls to NODEMASK_ALLOC() |
| |
On Thu, Feb 17, 2011 at 2:46 PM, Andrew Morton <akpm@linux-foundation.org> wrote: > On Thu, 17 Feb 2011 09:50:09 +0800 > Li Zefan <lizf@cn.fujitsu.com> wrote: > >> +/* >> + * In functions that can't propogate errno to users, to avoid declaring a >> + * nodemask_t variable, and avoid using NODEMASK_ALLOC that can return >> + * -ENOMEM, we use this global cpuset_mems. >> + * >> + * It should be used with cgroup_lock held. > > I'll do s/should/must/ - that would be a nasty bug. > > I'd be more comfortable about the maintainability of this optimisation > if we had > > WARN_ON(!cgroup_is_locked()); > > at each site. >
Agreed - that was my first thought on reading the patch. How about:
static nodemask_t *cpuset_static_nodemask() { static nodemask_t nodemask; WARN_ON(!cgroup_is_locked()); return &nodemask; }
and then just call cpuset_static_nodemask() in the various locations being patched?
Paul -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |