Commit e129ae26 authored by Pavel Emelyanov's avatar Pavel Emelyanov

dump: Pass whole struct pid into thread dumping routine

And do "get real pid, report virtual one" inside.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 3481b9aa
......@@ -1176,8 +1176,8 @@ static int dump_task_thread(struct parasite_ctl *parasite_ctl, struct pid *tid)
if (ret)
goto err_free;
ret = parasite_dump_thread_seized(parasite_ctl, pid, &taddr,
&tid->virt, &core->thread_core->blk_sigset,
ret = parasite_dump_thread_seized(parasite_ctl, tid, &taddr,
&core->thread_core->blk_sigset,
&tls);
if (ret) {
......
......@@ -36,8 +36,9 @@ extern int parasite_dump_pages_seized(struct parasite_ctl *ctl,
struct list_head *vma_area_list,
struct cr_fdset *cr_fdset);
struct parasite_dump_thread;
extern int parasite_dump_thread_seized(struct parasite_ctl *ctl, pid_t pid,
unsigned int **tid_add, pid_t *tid,
struct pid;
extern int parasite_dump_thread_seized(struct parasite_ctl *ctl, struct pid *tid,
unsigned int **tid_add,
void *blocked, u32 *tls);
struct parasite_drain_fd;
......
......@@ -364,8 +364,8 @@ err:
return -1;
}
int parasite_dump_thread_seized(struct parasite_ctl *ctl, pid_t pid,
unsigned int **tid_addr, pid_t *tid,
int parasite_dump_thread_seized(struct parasite_ctl *ctl, struct pid *tid,
unsigned int **tid_addr,
void *blocked,
u32 *tls)
{
......@@ -374,11 +374,11 @@ int parasite_dump_thread_seized(struct parasite_ctl *ctl, pid_t pid,
args = parasite_args(ctl, struct parasite_dump_thread);
ret = parasite_execute_by_pid(PARASITE_CMD_DUMP_THREAD, ctl, pid);
ret = parasite_execute_by_pid(PARASITE_CMD_DUMP_THREAD, ctl, tid->real);
memcpy(blocked, &args->blocked, sizeof(args->blocked));
*tid_addr = args->tid_addr;
*tid = args->tid;
tid->virt = args->tid;
*tls = args->tls;
return ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment