From: Liam R. Howlett Date: Fri, 18 Dec 2020 18:54:49 +0000 (-0500) Subject: fs/coredump: linked list fallout X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f0a6105b398256ccc7b2cfc39fc2dd8f0e8de49f;p=users%2Fjedix%2Flinux-maple.git fs/coredump: linked list fallout Signed-off-by: Liam R. Howlett --- diff --git a/fs/coredump.c b/fs/coredump.c index 5b950af6e793..a69f281a08af 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1040,10 +1040,10 @@ whole: return vma->vm_end - vma->vm_start; } -static struct vm_area_struct *first_vma(struct task_struct *tsk, +static struct vm_area_struct *first_vma(struct mm_struct *mm, struct vm_area_struct *gate_vma) { - struct vm_area_struct *ret = find_vma(tsk->mm, 0); + struct vm_area_struct *ret = find_vma(mm, 0); if (ret) return ret; @@ -1054,12 +1054,13 @@ static struct vm_area_struct *first_vma(struct task_struct *tsk, * Helper function for iterating across a vma list. It ensures that the caller * will visit `gate_vma' prior to terminating the search. */ -static struct vm_area_struct *next_vma(struct vm_area_struct *this_vma, +static struct vm_area_struct *next_vma(struct mm_struct *mm, + struct vm_area_struct *this_vma, struct vm_area_struct *gate_vma) { struct vm_area_struct *ret; - ret = vma_next(this_vma->vm_mm, this_vma); + ret = vma_next(mm, this_vma); if (ret) return ret; if (this_vma == gate_vma) @@ -1097,8 +1098,8 @@ int dump_vma_snapshot(struct coredump_params *cprm, int *vma_count, return -ENOMEM; } - for (i = 0, vma = first_vma(current, gate_vma); vma != NULL; - vma = next_vma(vma, gate_vma), i++) { + for (i = 0, vma = first_vma(mm, gate_vma); vma != NULL; + vma = next_vma(mm, vma, gate_vma), i++) { struct core_vma_metadata *m = (*vma_meta) + i; m->start = vma->vm_start;