Commit 54c6ac7a authored by Kirill Tkhai's avatar Kirill Tkhai Committed by Pavel Emelyanov

aio: Take in account a ring never has a parent in pre-dump

Since AIO ring is never pre-dumped, it never has a parent
in pre-dump. Make generate_iovs() to know this.
Signed-off-by: 's avatarKirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent c22c748f
...@@ -304,19 +304,23 @@ static int __parasite_dump_pages_seized(struct parasite_ctl *ctl, ...@@ -304,19 +304,23 @@ static int __parasite_dump_pages_seized(struct parasite_ctl *ctl,
*/ */
args->off = 0; args->off = 0;
list_for_each_entry(vma_area, &vma_area_list->h, list) { list_for_each_entry(vma_area, &vma_area_list->h, list) {
bool has_parent = !!xfer.parent;
u64 off = 0; u64 off = 0;
u64 *map; u64 *map;
if (!vma_area_is_private(vma_area, kdat.task_size)) if (!vma_area_is_private(vma_area, kdat.task_size))
continue; continue;
if (vma_entry_is(vma_area->e, VMA_AREA_AIORING) && pp_ret) if (vma_entry_is(vma_area->e, VMA_AREA_AIORING)) {
if (pp_ret)
continue; continue;
has_parent = false;
}
map = pmc_get_map(&pmc, vma_area); map = pmc_get_map(&pmc, vma_area);
if (!map) if (!map)
goto out_xfer; goto out_xfer;
again: again:
ret = generate_iovs(vma_area, pp, map, &off, xfer.parent); ret = generate_iovs(vma_area, pp, map, &off, has_parent);
if (ret == -EAGAIN) { if (ret == -EAGAIN) {
BUG_ON(pp_ret); BUG_ON(pp_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