mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-17 16:47:50 +00:00
cr-dump: allocate dfds near the place where it's used
Signed-off-by: Andrey Vagin <avagin@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
5e33a31c93
commit
4e1d81deb6
1 changed files with 5 additions and 6 deletions
11
cr-dump.c
11
cr-dump.c
|
|
@ -1381,7 +1381,7 @@ static int dump_one_task(struct pstree_item *item)
|
|||
int ret = -1;
|
||||
struct parasite_dump_misc misc;
|
||||
struct cr_fdset *cr_fdset = NULL;
|
||||
struct parasite_drain_fd *dfds;
|
||||
struct parasite_drain_fd *dfds = NULL;
|
||||
struct proc_posix_timers_stat proc_args;
|
||||
struct proc_status_creds cr;
|
||||
|
||||
|
|
@ -1398,10 +1398,6 @@ static int dump_one_task(struct pstree_item *item)
|
|||
*/
|
||||
return 0;
|
||||
|
||||
dfds = xmalloc(sizeof(*dfds));
|
||||
if (!dfds)
|
||||
goto err_free;
|
||||
|
||||
pr_info("Obtaining task stat ... ");
|
||||
ret = parse_pid_stat(pid, &pps_buf);
|
||||
if (ret < 0)
|
||||
|
|
@ -1423,6 +1419,10 @@ static int dump_one_task(struct pstree_item *item)
|
|||
goto err;
|
||||
}
|
||||
|
||||
dfds = xmalloc(sizeof(*dfds));
|
||||
if (!dfds)
|
||||
goto err;
|
||||
|
||||
ret = collect_fds(pid, dfds);
|
||||
if (ret) {
|
||||
pr_err("Collect fds (pid: %d) failed with %d\n", pid, ret);
|
||||
|
|
@ -1578,7 +1578,6 @@ static int dump_one_task(struct pstree_item *item)
|
|||
close_cr_fdset(&cr_fdset);
|
||||
err:
|
||||
close_pid_proc();
|
||||
err_free:
|
||||
free_mappings(&vmas);
|
||||
xfree(dfds);
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue