[CRIU] [PATCH] pstree: rename lookup_create_{item <=> pid}

Pavel Emelyanov xemul at virtuozzo.com
Thu Nov 17 00:27:09 PST 2016


On 11/14/2016 09:36 PM, Dmitry Safonov wrote:
> I suggest to rename lookup_create_pid into lookup_create_item and
> backwards. I think, the naming is misleading, now *_pid() looks for/creates
> pstree item, which can be thread, undef task or anything else,

But at the same time lookup_create_pid returns struct pid *, lookup_create_item
returns struct pstree_item and you suggest to mess it up :)

> while *_item() can't create/locate threads (because of BUG_ON()).
> Let's swap them:
> - lookup_create_item() will return pstree item - anything, process or thread
> - lookup_create_pid() will only lookup/create processes, bugging on threads.
> 
> Cc: Andrey Vagin <avagin at virtuozzo.com>
> Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
> ---
>  criu/files-reg.c      |  2 +-
>  criu/include/pstree.h |  2 +-
>  criu/pstree.c         | 22 +++++++++++-----------
>  3 files changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/criu/files-reg.c b/criu/files-reg.c
> index 1c3d32e0cbf7..047be3723857 100644
> --- a/criu/files-reg.c
> +++ b/criu/files-reg.c
> @@ -361,7 +361,7 @@ static int open_remap_dead_process(struct reg_file_info *rfi,
>  {
>  	struct pstree_item *helper;
>  
> -	helper = lookup_create_item(rfe->remap_id);
> +	helper = lookup_create_pid(rfe->remap_id);
>  	if (!helper)
>  		return -1;
>  
> diff --git a/criu/include/pstree.h b/criu/include/pstree.h
> index 5768b645021c..349ef4830061 100644
> --- a/criu/include/pstree.h
> +++ b/criu/include/pstree.h
> @@ -74,7 +74,7 @@ extern struct pstree_item *__alloc_pstree_item(bool rst);
>  #define alloc_pstree_item() __alloc_pstree_item(false)
>  extern void init_pstree_helper(struct pstree_item *ret);
>  
> -extern struct pstree_item *lookup_create_item(pid_t pid);
> +extern struct pstree_item *lookup_create_pid(pid_t pid);
>  extern void pstree_insert_pid(pid_t pid, struct pid *pid_node);
>  extern struct pid *pstree_pid_by_virt(pid_t pid);
>  
> diff --git a/criu/pstree.c b/criu/pstree.c
> index 943518d98fea..081d4d000e1c 100644
> --- a/criu/pstree.c
> +++ b/criu/pstree.c
> @@ -366,9 +366,9 @@ static int prepare_pstree_for_shell_job(void)
>  			pi->sid = current_sid;
>  	}
>  
> -	if (lookup_create_item(current_sid) == NULL)
> +	if (lookup_create_pid(current_sid) == NULL)
>  		return -1;
> -	if (lookup_create_item(current_gid) == NULL)
> +	if (lookup_create_pid(current_gid) == NULL)
>  		return -1;
>  
>  	return 0;
> @@ -379,7 +379,7 @@ static int prepare_pstree_for_shell_job(void)
>   * it is not there yet. If pid_node isn't set, pstree_item
>   * is inserted.
>   */
> -static struct pid *lookup_create_pid(pid_t pid, struct pid *pid_node)
> +static struct pid *lookup_create_item(pid_t pid, struct pid *pid_node)
>  {
>  	struct rb_node *node = pid_root_rb.rb_node;
>  	struct rb_node **new = &pid_root_rb.rb_node;
> @@ -415,16 +415,16 @@ void pstree_insert_pid(pid_t pid, struct pid *pid_node)
>  {
>  	struct pid* n;
>  
> -	n = lookup_create_pid(pid, pid_node);
> +	n = lookup_create_item(pid, pid_node);
>  
>  	BUG_ON(n != pid_node);
>  }
>  
> -struct pstree_item *lookup_create_item(pid_t pid)
> +struct pstree_item *lookup_create_pid(pid_t pid)
>  {
>  	struct pid *node;;
>  
> -	node = lookup_create_pid(pid, NULL);
> +	node = lookup_create_item(pid, NULL);
>  	if (!node)
>  		return NULL;
>  	BUG_ON(node->state == TASK_THREAD);
> @@ -492,7 +492,7 @@ static int read_pstree_image(pid_t *pid_max)
>  			break;
>  
>  		ret = -1;
> -		pi = lookup_create_item(e->pid);
> +		pi = lookup_create_pid(e->pid);
>  		if (pi == NULL)
>  			break;
>  		BUG_ON(pi->pid.state != TASK_UNDEF);
> @@ -503,9 +503,9 @@ static int read_pstree_image(pid_t *pid_max)
>  		 * be initialized when we meet PstreeEntry with this pid or
>  		 * we will create helpers for them.
>  		 */
> -		if (lookup_create_item(e->pgid) == NULL)
> +		if (lookup_create_pid(e->pgid) == NULL)
>  			break;
> -		if (lookup_create_item(e->sid) == NULL)
> +		if (lookup_create_pid(e->sid) == NULL)
>  			break;
>  
>  		pi->pid.virt = e->pid;
> @@ -556,7 +556,7 @@ static int read_pstree_image(pid_t *pid_max)
>  			pi->threads[i].state = TASK_THREAD;
>  			if (i == 0)
>  				continue; /* A thread leader is in a tree already */
> -			node = lookup_create_pid(pi->threads[i].virt, &pi->threads[i]);
> +			node = lookup_create_item(pi->threads[i].virt, &pi->threads[i]);
>  
>  			BUG_ON(node == NULL);
>  			if (node != &pi->threads[i]) {
> @@ -639,7 +639,7 @@ static int prepare_pstree_ids(void)
>  			pid = get_free_pid();
>  			if (pid < 0)
>  				break;
> -			helper = lookup_create_item(pid);
> +			helper = lookup_create_pid(pid);
>  			if (helper == NULL)
>  				return -1;
>  
> 



More information about the CRIU mailing list