Linux Container Development
 help / color / mirror / Atom feed
* [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