[CRIU] [PATCH] Avoid unnecessary getpid() calls

Andrei Vagin avagin at gmail.com
Sat Jan 19 07:07:09 MSK 2019


Applied, thanks!

On Thu, Jan 17, 2019 at 08:33:04PM +0000, Radostin Stoyanov wrote:
> getsid(0) and getpgid(0) will return session ID and PGID of
> the calling process.
> 
> Signed-off-by: Radostin Stoyanov <rstoyanov1 at gmail.com>
> ---
>  criu/cr-restore.c            |  4 ++--
>  test/zdtm/static/session00.c |  4 ++--
>  test/zdtm/static/session01.c | 12 ++++++------
>  test/zdtm/static/session03.c |  2 +-
>  4 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/criu/cr-restore.c b/criu/cr-restore.c
> index 7bbe79aae..f3addab3f 100644
> --- a/criu/cr-restore.c
> +++ b/criu/cr-restore.c
> @@ -1489,7 +1489,7 @@ static void restore_sid(void)
>  			exit(1);
>  		}
>  	} else {
> -		sid = getsid(getpid());
> +		sid = getsid(0);
>  		if (sid != current->sid) {
>  			/* Skip the root task if it's not init */
>  			if (current == root_item && vpid(root_item) != INIT_PID)
> @@ -1594,7 +1594,7 @@ static int create_children_and_session(void)
>  		if (!restore_before_setsid(child))
>  			continue;
>  
> -		BUG_ON(child->born_sid != -1 && getsid(getpid()) != child->born_sid);
> +		BUG_ON(child->born_sid != -1 && getsid(0) != child->born_sid);
>  
>  		ret = fork_with_pid(child);
>  		if (ret < 0)
> diff --git a/test/zdtm/static/session00.c b/test/zdtm/static/session00.c
> index 5889a92b9..4a239e159 100644
> --- a/test/zdtm/static/session00.c
> +++ b/test/zdtm/static/session00.c
> @@ -90,7 +90,7 @@ static int fork_child(int i)
>  
>  			close(p[1]);
>  			wait(NULL);
> -			if (getsid(getpid()) != sid) {
> +			if (getsid(0) != sid) {
>  				fail("The process %d (%x) has SID=%d (expected %d)",
>  					pid, testcases[i].flags, sid, testcases[i].sid);
>  				exit(1);
> @@ -117,7 +117,7 @@ static int fork_child(int i)
>  
>  			close(p[1]);
>  			wait(NULL);
> -			if (getsid(getpid()) != sid) {
> +			if (getsid(0) != sid) {
>  				fail("The process %d (%x) has SID=%d (expected %d)",
>  					pid, testcases[i].flags, sid, testcases[i].sid);
>  				exit(1);
> diff --git a/test/zdtm/static/session01.c b/test/zdtm/static/session01.c
> index 20c0d51cb..48cfb26de 100644
> --- a/test/zdtm/static/session01.c
> +++ b/test/zdtm/static/session01.c
> @@ -102,14 +102,14 @@ static int child(const int c)
>  		goto err;
>  
>  	if (t->pid == t->sid) {
> -		if (getpid() != getsid(getpid()))
> +		if (getpid() != getsid(0))
>  			if (setsid() < 0)
>  				goto err;
>  		if (fork_children(t, 1))
>  			goto err;
>  	}
>  	if (t->pid == t->pgid) {
> -		if (getpid() != getpgid(getpid()))
> +		if (getpid() != getpgid(0))
>  			if (setpgid(getpid(), getpid()) < 0) {
>  				pr_perror("setpgid() failed");
>  				goto err;
> @@ -129,7 +129,7 @@ static int child(const int c)
>  			break;
>  		if (t->pgid != testcases[i].pid)
>  			continue;
> -		if (getpgid(getpid()) != testcases[i].master.pid)
> +		if (getpgid(0) != testcases[i].master.pid)
>  			if (setpgid(getpid(), testcases[i].master.pid) < 0) {
>  				pr_perror("setpgid() failed (%d) (%d)", c, i);
>  				goto err;
> @@ -161,7 +161,7 @@ static int child(const int c)
>  
>  	/* Save the master copy */
>  	t->master.ppid	= getppid();
> -	t->master.sid	= getsid(getpid());
> +	t->master.sid	= getsid(0);
>  
>  	futex_set_and_wake(&t->futex, c);
>  
> @@ -169,8 +169,8 @@ static int child(const int c)
>  
>  	check("pid", t->master.pid,	getpid());
>  	check("ppid", t->master.ppid,	getppid());
> -	check("sid", t->master.sid,	getsid(getpid()));
> -	check("pgid", t->master.pgid,	getpgid(getpid()));
> +	check("sid", t->master.sid,	getsid(0));
> +	check("pgid", t->master.pgid,	getpgid(0));
>  
>  	futex_set_and_wake(&t->futex, c);
>  
> diff --git a/test/zdtm/static/session03.c b/test/zdtm/static/session03.c
> index 04fb83461..2b3c46c32 100644
> --- a/test/zdtm/static/session03.c
> +++ b/test/zdtm/static/session03.c
> @@ -177,7 +177,7 @@ static void handle_command()
>  		}
>  		break;
>  	case TEST_SETSID:
> -		if (getsid(getpid()) == getpid())
> +		if (getsid(0) == getpid())
>  			break;
>  		test_msg("%3d: setsid()\n", current);
>  		if(setsid() == -1) {
> -- 
> 2.20.1
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu


More information about the CRIU mailing list