[CRIU] [PATCH v2] images: Implement collect_images() to minimaze code lines
Andrei Vagin
avagin at virtuozzo.com
Wed May 10 17:50:24 PDT 2017
Applied, thanks!
On Thu, May 04, 2017 at 09:42:36PM +0300, Kirill Tkhai wrote:
> Pack repeated actions in one. Also, fixed the "return -1"
> from the middle of restore_task_with_children(),
> while cleanup is need.
>
> v2: goto err in case of error instead of return -1.
>
> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
> ---
> criu/cr-restore.c | 19 +++++--------------
> criu/include/protobuf.h | 10 ++++++++++
> 2 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/criu/cr-restore.c b/criu/cr-restore.c
> index afdc9eb75..2369c5ef4 100644
> --- a/criu/cr-restore.c
> +++ b/criu/cr-restore.c
> @@ -327,7 +327,7 @@ static int run_post_prepare(void)
>
> static int root_prepare_shared(void)
> {
> - int ret = 0, i;
> + int ret = 0;
> struct pstree_item *pi;
>
> pr_info("Preparing info about shared resources\n");
> @@ -341,11 +341,8 @@ static int root_prepare_shared(void)
> if (prepare_seccomp_filters())
> return -1;
>
> - for (i = 0; i < ARRAY_SIZE(cinfos); i++) {
> - ret = collect_image(cinfos[i]);
> - if (ret)
> - return -1;
> - }
> + if (collect_images(cinfos, ARRAY_SIZE(cinfos)))
> + return -1;
>
> for_each_pstree_item(pi) {
> if (pi->pid->state == TASK_HELPER)
> @@ -1531,8 +1528,6 @@ static int restore_task_with_children(void *_arg)
>
> /* Restore root task */
> if (current->parent == NULL) {
> - int i;
> -
> if (prepare_shared_tty())
> goto err;
>
> @@ -1554,12 +1549,8 @@ static int restore_task_with_children(void *_arg)
> if (mount_proc())
> goto err;
>
> - for (i = 0; i < ARRAY_SIZE(before_ns_cinfos); i++) {
> - ret = collect_image(before_ns_cinfos[i]);
> - if (ret)
> - return -1;
> - }
> -
> + if (collect_images(before_ns_cinfos, ARRAY_SIZE(before_ns_cinfos)))
> + goto err;
>
> if (prepare_namespace(current, ca->clone_flags))
> goto err;
> diff --git a/criu/include/protobuf.h b/criu/include/protobuf.h
> index a90fcd1b2..ff6136f5c 100644
> --- a/criu/include/protobuf.h
> +++ b/criu/include/protobuf.h
> @@ -40,4 +40,14 @@ struct collect_image_info {
>
> extern int collect_image(struct collect_image_info *);
>
> +static inline int collect_images(struct collect_image_info **array, unsigned size)
> +{
> + int i;
> + for (i = 0; i < size; i++) {
> + if (collect_image(array[i]))
> + return -1;
> + }
> + return 0;
> +}
> +
> #endif /* __CR_PROTOBUF_H__ */
>
More information about the CRIU
mailing list