* [PATCH] eclone: fix do_alloc_pidmap bogosity on -EAGAIN
@ 2009-11-13 21:05 Serge E. Hallyn
0 siblings, 0 replies; only message in thread
From: Serge E. Hallyn @ 2009-11-13 21:05 UTC (permalink / raw)
To: Sukadev Bhattiprolu; +Cc: Linux Containers
do_alloc_pidmap must not return 0 if it failed to find a pid.
Without this patch, doing eclone and choosing a pid which is in
use results in a massive chain of oopses.
(This applies on top of the v13 eclone patchset)
Signed-off-by: Serge E. Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
---
kernel/pid.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/kernel/pid.c b/kernel/pid.c
index 3ee52cd..8ad7b04 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -164,6 +164,7 @@ static int do_alloc_pidmap(struct pid_namespace *pid_ns, int last, int min,
rc = alloc_pidmap_page(map);
if (rc)
break;
+ rc = -EAGAIN;
if (likely(atomic_read(&map->nr_free))) {
do {
@@ -189,10 +190,8 @@ static int do_alloc_pidmap(struct pid_namespace *pid_ns, int last, int min,
} else {
map = &pid_ns->pidmap[0];
offset = min;
- if (unlikely(last == offset)) {
- rc = -EAGAIN;
+ if (unlikely(last == offset))
break;
- }
}
pid = mk_pid(pid_ns, map, offset);
}
--
1.6.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2009-11-13 21:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-13 21:05 [PATCH] eclone: fix do_alloc_pidmap bogosity on -EAGAIN Serge E. Hallyn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox