Re: [PATCH 2/9] mm: khugepaged: fix radix tree node leak in shmem collapse error path

2016-11-17 Thread Jan Kara
On Thu 17-11-16 14:11:31, Johannes Weiner wrote:
> The radix tree counts valid entries in each tree node. Entries stored
> in the tree cannot be removed by simpling storing NULL in the slot or
> the internal counters will be off and the node never gets freed again.
> 
> When collapsing a shmem page fails, restore the holes that were filled
> with radix_tree_insert() with a proper radix tree deletion.
> 
> Fixes: f3f0e1d2150b ("khugepaged: add support of collapse for tmpfs/shmem 
> pages")
> Reported-by: Jan Kara 
> Signed-off-by: Johannes Weiner 

Looks good. You can add:

Reviewed-by: Jan Kara 

Honza

> ---
>  mm/khugepaged.c | 6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index bdfdab40a813..d553c294de40 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c
> @@ -1523,9 +1523,11 @@ static void collapse_shmem(struct mm_struct *mm,
>   if (!page || iter.index < page->index) {
>   if (!nr_none)
>   break;
> - /* Put holes back where they were */
> - radix_tree_replace_slot(slot, NULL);
>   nr_none--;
> + /* Put holes back where they were */
> + radix_tree_delete(>page_tree,
> +   iter.index);
> + slot = radix_tree_iter_next();
>   continue;
>   }
>  
> -- 
> 2.10.2
> 
-- 
Jan Kara 
SUSE Labs, CR


Re: [PATCH 2/9] mm: khugepaged: fix radix tree node leak in shmem collapse error path

2016-11-17 Thread Jan Kara
On Thu 17-11-16 14:11:31, Johannes Weiner wrote:
> The radix tree counts valid entries in each tree node. Entries stored
> in the tree cannot be removed by simpling storing NULL in the slot or
> the internal counters will be off and the node never gets freed again.
> 
> When collapsing a shmem page fails, restore the holes that were filled
> with radix_tree_insert() with a proper radix tree deletion.
> 
> Fixes: f3f0e1d2150b ("khugepaged: add support of collapse for tmpfs/shmem 
> pages")
> Reported-by: Jan Kara 
> Signed-off-by: Johannes Weiner 

Looks good. You can add:

Reviewed-by: Jan Kara 

Honza

> ---
>  mm/khugepaged.c | 6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/khugepaged.c b/mm/khugepaged.c
> index bdfdab40a813..d553c294de40 100644
> --- a/mm/khugepaged.c
> +++ b/mm/khugepaged.c
> @@ -1523,9 +1523,11 @@ static void collapse_shmem(struct mm_struct *mm,
>   if (!page || iter.index < page->index) {
>   if (!nr_none)
>   break;
> - /* Put holes back where they were */
> - radix_tree_replace_slot(slot, NULL);
>   nr_none--;
> + /* Put holes back where they were */
> + radix_tree_delete(>page_tree,
> +   iter.index);
> + slot = radix_tree_iter_next();
>   continue;
>   }
>  
> -- 
> 2.10.2
> 
-- 
Jan Kara 
SUSE Labs, CR


Re: [PATCH 2/9] mm: khugepaged: fix radix tree node leak in shmem collapse error path

2016-11-17 Thread Kirill A. Shutemov
On Thu, Nov 17, 2016 at 02:11:31PM -0500, Johannes Weiner wrote:
> The radix tree counts valid entries in each tree node. Entries stored
> in the tree cannot be removed by simpling storing NULL in the slot or
> the internal counters will be off and the node never gets freed again.
> 
> When collapsing a shmem page fails, restore the holes that were filled
> with radix_tree_insert() with a proper radix tree deletion.
> 
> Fixes: f3f0e1d2150b ("khugepaged: add support of collapse for tmpfs/shmem 
> pages")
> Reported-by: Jan Kara 
> Signed-off-by: Johannes Weiner 

Acked-by: Kirill A. Shutemov 

-- 
 Kirill A. Shutemov


Re: [PATCH 2/9] mm: khugepaged: fix radix tree node leak in shmem collapse error path

2016-11-17 Thread Kirill A. Shutemov
On Thu, Nov 17, 2016 at 02:11:31PM -0500, Johannes Weiner wrote:
> The radix tree counts valid entries in each tree node. Entries stored
> in the tree cannot be removed by simpling storing NULL in the slot or
> the internal counters will be off and the node never gets freed again.
> 
> When collapsing a shmem page fails, restore the holes that were filled
> with radix_tree_insert() with a proper radix tree deletion.
> 
> Fixes: f3f0e1d2150b ("khugepaged: add support of collapse for tmpfs/shmem 
> pages")
> Reported-by: Jan Kara 
> Signed-off-by: Johannes Weiner 

Acked-by: Kirill A. Shutemov 

-- 
 Kirill A. Shutemov