diff mbox series

mm: fix unaccount of memory on vma_link() failure

Message ID 20230830004324.16101-1-anthony.yznaga@oracle.com (mailing list archive)
State New
Headers show
Series mm: fix unaccount of memory on vma_link() failure | expand

Commit Message

Anthony Yznaga Aug. 30, 2023, 12:43 a.m. UTC
Fix insert_vm_struct() so that only accounted memory is unaccounted
if vma_link() fails.

Fixes: d4af56c5c7c6 ("mm: start tracking VMAs with maple tree")
Signed-off-by: Anthony Yznaga <anthony.yznaga@oracle.com>
---
 mm/mmap.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Liam R. Howlett Sept. 5, 2023, 1:12 p.m. UTC | #1
* Anthony Yznaga <anthony.yznaga@oracle.com> [230829 20:43]:
> Fix insert_vm_struct() so that only accounted memory is unaccounted
> if vma_link() fails.
> 
> Fixes: d4af56c5c7c6 ("mm: start tracking VMAs with maple tree")
> Signed-off-by: Anthony Yznaga <anthony.yznaga@oracle.com>

Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com>

> ---
>  mm/mmap.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/mm/mmap.c b/mm/mmap.c
> index 514ced13c65c..f8c084017757 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -3278,7 +3278,8 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
>  	}
>  
>  	if (vma_link(mm, vma)) {
> -		vm_unacct_memory(charged);
> +		if (vma->vm_flags & VM_ACCOUNT)
> +			vm_unacct_memory(charged);
>  		return -ENOMEM;
>  	}
>  
> -- 
> 2.39.3
>
diff mbox series

Patch

diff --git a/mm/mmap.c b/mm/mmap.c
index 514ced13c65c..f8c084017757 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3278,7 +3278,8 @@  int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
 	}
 
 	if (vma_link(mm, vma)) {
-		vm_unacct_memory(charged);
+		if (vma->vm_flags & VM_ACCOUNT)
+			vm_unacct_memory(charged);
 		return -ENOMEM;
 	}