Skip to contentSkip to conversation

don't swap 0 sids if ctx->arg->pids

PATCH In review Serge E. Hallyn 2 participants 2 messages Nov 6, 2009 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 don't swap 0 sids if ctx->arg->pids

It breaks restart --pidns

---
 restart.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
restart.c +7 -6
index 47d729a..f523adf 100644
@@ -2039,12 +2039,13 @@ static int ckpt_adjust_pids(struct ckpt_ctx *ctx)
 	 * NOTE: thanks to the construction of tasks_arr[], the first
 	 * ctx->pid_nr entries in both arrays match (the same pids).
 	 */
-	for (m = 0; m < ctx->pids_nr; m++) {
-		if (ctx->tasks_arr[m].flags & TASK_ZERO_SID)
-			ctx->copy_arr[m].vsid = coord_sid;
-		if (ctx->tasks_arr[m].flags & TASK_ZERO_PGID)
-			ctx->copy_arr[m].vpgid = coord_sid;
-	}
+	if (!ctx->args->pids)
+		for (m = 0; m < ctx->pids_nr; m++) {
+			if (ctx->tasks_arr[m].flags & TASK_ZERO_SID)
+				ctx->copy_arr[m].vsid = coord_sid;
+			if (ctx->tasks_arr[m].flags & TASK_ZERO_PGID)
+				ctx->copy_arr[m].vpgid = coord_sid;
+		}
 
 	memcpy(ctx->pids_arr, ctx->copy_arr, len);
 	close(ctx->pipe_in);
Signature · 1 line
1.6.1.1

A message that is not in the archive (sent off-list or not yet received): 20091106073708.GA18978-r/[email protected]

#2 lore raw

pulled with a slight change: tests for !ctx->args->pidns instead of ctx->args->pids.

Oren.

Quoted 31 lines · Serge E. Hallyn

It breaks restart --pidns

---
 restart.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
restart.c +7 -6
index 47d729a..f523adf 100644
@@ -2039,12 +2039,13 @@ static int ckpt_adjust_pids(struct ckpt_ctx *ctx)
 	 * NOTE: thanks to the construction of tasks_arr[], the first
 	 * ctx->pid_nr entries in both arrays match (the same pids).
 	 */
-	for (m = 0; m < ctx->pids_nr; m++) {
-		if (ctx->tasks_arr[m].flags & TASK_ZERO_SID)
-			ctx->copy_arr[m].vsid = coord_sid;
-		if (ctx->tasks_arr[m].flags & TASK_ZERO_PGID)
-			ctx->copy_arr[m].vpgid = coord_sid;
-	}
+	if (!ctx->args->pids)
+		for (m = 0; m < ctx->pids_nr; m++) {
+			if (ctx->tasks_arr[m].flags & TASK_ZERO_SID)
+				ctx->copy_arr[m].vsid = coord_sid;
+			if (ctx->tasks_arr[m].flags & TASK_ZERO_PGID)
+				ctx->copy_arr[m].vpgid = coord_sid;
+		}
 
 	memcpy(ctx->pids_arr, ctx->copy_arr, len);
 	close(ctx->pipe_in);