mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-22 09:58:09 +00:00
posix-timers: Helper for freeing proc parsed data
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
b54e340945
commit
d48d6c7267
@ -22,5 +22,6 @@ struct proc_posix_timers_stat {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern int parse_posix_timers(pid_t pid, struct proc_posix_timers_stat * args);
|
extern int parse_posix_timers(pid_t pid, struct proc_posix_timers_stat * args);
|
||||||
|
void free_posix_timers(struct proc_posix_timers_stat *st);
|
||||||
|
|
||||||
#endif /* __CR_PROC_POSIX_TIMER_H__ */
|
#endif /* __CR_PROC_POSIX_TIMER_H__ */
|
||||||
|
@ -702,12 +702,7 @@ int parasite_dump_posix_timers_seized(struct proc_posix_timers_stat *proc_args,
|
|||||||
}
|
}
|
||||||
|
|
||||||
end_posix:
|
end_posix:
|
||||||
while (!list_empty(&proc_args->timers)) {
|
free_posix_timers(proc_args);
|
||||||
temp = list_first_entry(&proc_args->timers, struct proc_posix_timer, list);
|
|
||||||
list_del(&temp->list);
|
|
||||||
xfree(temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
proc_parse.c
16
proc_parse.c
@ -1337,6 +1337,16 @@ err:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void free_posix_timers(struct proc_posix_timers_stat *st)
|
||||||
|
{
|
||||||
|
while (!list_empty(&st->timers)) {
|
||||||
|
struct proc_posix_timer *timer;
|
||||||
|
timer = list_first_entry(&st->timers, struct proc_posix_timer, list);
|
||||||
|
list_del(&timer->list);
|
||||||
|
xfree(timer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int parse_posix_timers(pid_t pid, struct proc_posix_timers_stat *args)
|
int parse_posix_timers(pid_t pid, struct proc_posix_timers_stat *args)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@ -1409,11 +1419,7 @@ int parse_posix_timers(pid_t pid, struct proc_posix_timers_stat *args)
|
|||||||
args->timer_n++;
|
args->timer_n++;
|
||||||
}
|
}
|
||||||
err:
|
err:
|
||||||
while (!list_empty(&args->timers)) {
|
free_posix_timers(args);
|
||||||
timer = list_first_entry(&args->timers, struct proc_posix_timer, list);
|
|
||||||
list_del(&timer->list);
|
|
||||||
xfree(timer);
|
|
||||||
}
|
|
||||||
pr_perror("Parse error in posix timers proc file!");
|
pr_perror("Parse error in posix timers proc file!");
|
||||||
ret = -1;
|
ret = -1;
|
||||||
out:
|
out:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user