From fc2fcf6b2a9dc8228a4bc0aab5ecf890b1442bbe Mon Sep 17 00:00:00 2001 From: Andrei Vagin Date: Wed, 27 Jun 2018 10:16:49 -0700 Subject: [PATCH] task: WithExit() doesn't have to overwrite existing options Signed-off-by: Andrei Vagin --- cmd/ctr/commands/tasks/checkpoint.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/cmd/ctr/commands/tasks/checkpoint.go b/cmd/ctr/commands/tasks/checkpoint.go index 33946720d..52161156f 100644 --- a/cmd/ctr/commands/tasks/checkpoint.go +++ b/cmd/ctr/commands/tasks/checkpoint.go @@ -78,12 +78,22 @@ func withExit(rt string) containerd.CheckpointTaskOpts { return func(r *containerd.CheckpointTaskInfo) error { switch rt { case "io.containerd.runc.v1": - r.Options = &options.CheckpointOptions{ - Exit: true, + if r.Options == nil { + r.Options = &options.CheckpointOptions{ + Exit: true, + } + } else { + opts, _ := r.Options.(*options.CheckpointOptions) + opts.Exit = true } default: - r.Options = &runctypes.CheckpointOptions{ - Exit: true, + if r.Options == nil { + r.Options = &runctypes.CheckpointOptions{ + Exit: true, + } + } else { + opts, _ := r.Options.(*runctypes.CheckpointOptions) + opts.Exit = true } } return nil