[CRIU] [PATCH 1/5] rpc: add self_dump field
Pavel Emelyanov
xemul at parallels.com
Tue Dec 3 11:06:48 PST 2013
On 12/03/2013 08:20 PM, Ruslan Kuprieiev wrote:
> This is more clear, than pid value magic.
NAK from the very beginning. The pid field is _optional_. No magic
here, just make use of protobuf standard.
Magic starts when we have non corresponding has_pid and self_dump.
What does has_pid == true and self_dump == true mean? How about
has_pid == false and self_dump == false?
> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
> ---
> cr-service.c | 6 +++---
> protobuf/rpc.proto | 3 ++-
> 2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/cr-service.c b/cr-service.c
> index b092948..53de02b 100644
> --- a/cr-service.c
> +++ b/cr-service.c
> @@ -140,7 +140,8 @@ static int setup_opts_from_req(int sk, CriuOpts *req)
> if (req->has_leave_running && req->leave_running)
> opts.final_state = TASK_ALIVE;
>
> - if (!req->has_pid) {
> + if (!req->has_pid || req->self_dump) {
> + req->self_dump = true;
> req->has_pid = true;
> req->pid = ids.pid;
> }
> @@ -166,7 +167,6 @@ static int setup_opts_from_req(int sk, CriuOpts *req)
> static int dump_using_req(int sk, CriuOpts *req)
> {
> bool success = false;
> - bool self_dump = !req->pid;
>
> if (setup_opts_from_req(sk, req) == -1) {
> pr_perror("Arguments treating fail");
> @@ -176,7 +176,7 @@ static int dump_using_req(int sk, CriuOpts *req)
> if (cr_dump_tasks(req->pid) == -1)
> goto exit;
>
> - if (req->leave_running || !self_dump) {
> + if (req->leave_running || !req->self_dump) {
> success = true;
> exit:
> if (send_criu_dump_resp(sk, success, false) == -1) {
> diff --git a/protobuf/rpc.proto b/protobuf/rpc.proto
> index 7bea573..90a837d 100644
> --- a/protobuf/rpc.proto
> +++ b/protobuf/rpc.proto
> @@ -1,6 +1,6 @@
> message criu_opts {
> required int32 images_dir_fd = 1;
> - optional int32 pid = 2; //if not set on dump, will dump requesting process
> + optional int32 pid = 2; //if not set on dump, will dump requesting process(is left for compatibility, see "self_dump" field below)
>
> optional bool leave_running = 3;
> optional bool ext_unix_sk = 4;
> @@ -10,6 +10,7 @@ message criu_opts {
> optional bool file_locks = 8;
> optional int32 log_level = 9 [default = 2];
> optional string log_file = 10;
> + optional bool self_dump = 11;
> }
>
> message criu_dump_resp {
>
More information about the CRIU
mailing list