diff mbox series

maple_tree: Make mas_prealloc() error checking more generic

Message ID 20220615174213.738849-1-Liam.Howlett@oracle.com (mailing list archive)
State New
Headers show
Series maple_tree: Make mas_prealloc() error checking more generic | expand

Commit Message

Liam R. Howlett June 15, 2022, 5:42 p.m. UTC
Return the error regardless of what it is.  This is a safer option.

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
---
 lib/maple_tree.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

David Hildenbrand June 21, 2022, 9:09 a.m. UTC | #1
On 15.06.22 19:42, Liam Howlett wrote:
> Return the error regardless of what it is.  This is a safer option.
> 
> Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
> ---
>  lib/maple_tree.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> index f413b6f0da2b..89ff5ef7ee28 100644
> --- a/lib/maple_tree.c
> +++ b/lib/maple_tree.c
> @@ -5670,16 +5670,15 @@ void mas_store_prealloc(struct ma_state *mas, void *entry)
>   */
>  int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp)
>  {
> -
>  	mas_set_alloc_req(mas, 1 + mas_mt_height(mas) * 3);
>  	mas_alloc_nodes(mas, gfp);
> -	if (likely(mas->node != MA_ERROR(-ENOMEM)))
> +	if (likely(!mas_is_err(mas)))
>  		return 0;
>  
>  	mas_set_alloc_req(mas, 0);
>  	mas_destroy(mas);
>  	mas->node = MAS_START;
> -	return -ENOMEM;
> +	return xa_err(mas->node);
>  }
>  
>  /*

Liam, (as asked privately before, I was just too busy to respond :) )
once all known issues are fixed, can we have a new version posted to
ease review? That would make my life easier to see what needs review and
in which order patches apply. Thanks!
Liam R. Howlett June 21, 2022, 1:22 p.m. UTC | #2
* David Hildenbrand <david@redhat.com> [220621 05:09]:
> On 15.06.22 19:42, Liam Howlett wrote:
> > Return the error regardless of what it is.  This is a safer option.
> > 
> > Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
> > ---
> >  lib/maple_tree.c | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> > index f413b6f0da2b..89ff5ef7ee28 100644
> > --- a/lib/maple_tree.c
> > +++ b/lib/maple_tree.c
> > @@ -5670,16 +5670,15 @@ void mas_store_prealloc(struct ma_state *mas, void *entry)
> >   */
> >  int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp)
> >  {
> > -
> >  	mas_set_alloc_req(mas, 1 + mas_mt_height(mas) * 3);
> >  	mas_alloc_nodes(mas, gfp);
> > -	if (likely(mas->node != MA_ERROR(-ENOMEM)))
> > +	if (likely(!mas_is_err(mas)))
> >  		return 0;
> >  
> >  	mas_set_alloc_req(mas, 0);
> >  	mas_destroy(mas);
> >  	mas->node = MAS_START;
> > -	return -ENOMEM;
> > +	return xa_err(mas->node);
> >  }
> >  
> >  /*
> 
> Liam, (as asked privately before, I was just too busy to respond :) )
> once all known issues are fixed, can we have a new version posted to
> ease review? That would make my life easier to see what needs review and
> in which order patches apply. Thanks!
> 


Yes.  Thanks for asking.

Andrew didn't want to lose the comments so maybe I'll squash the fixes
into a branch and send that out as a response to v9 if that works?

Cheers,
Liam
Andrew Morton June 21, 2022, 8:38 p.m. UTC | #3
On Tue, 21 Jun 2022 13:22:59 +0000 Liam Howlett <liam.howlett@oracle.com> wrote:

> * David Hildenbrand <david@redhat.com> [220621 05:09]:
> > On 15.06.22 19:42, Liam Howlett wrote:
> > > Return the error regardless of what it is.  This is a safer option.
> > > 
> > > Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
> > > ---
> > >  lib/maple_tree.c | 5 ++---
> > >  1 file changed, 2 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> > > index f413b6f0da2b..89ff5ef7ee28 100644
> > > --- a/lib/maple_tree.c
> > > +++ b/lib/maple_tree.c
> > > @@ -5670,16 +5670,15 @@ void mas_store_prealloc(struct ma_state *mas, void *entry)
> > >   */
> > >  int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp)
> > >  {
> > > -
> > >  	mas_set_alloc_req(mas, 1 + mas_mt_height(mas) * 3);
> > >  	mas_alloc_nodes(mas, gfp);
> > > -	if (likely(mas->node != MA_ERROR(-ENOMEM)))
> > > +	if (likely(!mas_is_err(mas)))
> > >  		return 0;
> > >  
> > >  	mas_set_alloc_req(mas, 0);
> > >  	mas_destroy(mas);
> > >  	mas->node = MAS_START;
> > > -	return -ENOMEM;
> > > +	return xa_err(mas->node);
> > >  }
> > >  
> > >  /*
> > 
> > Liam, (as asked privately before, I was just too busy to respond :) )
> > once all known issues are fixed, can we have a new version posted to
> > ease review? That would make my life easier to see what needs review and
> > in which order patches apply. Thanks!
> > 
> 
> 
> Yes.  Thanks for asking.
> 
> Andrew didn't want to lose the comments so maybe I'll squash the fixes
> into a branch and send that out as a response to v9 if that works?

I guess it's time for a new series - things are getting a little
straggly:

maple-tree-add-new-data-structure-fix.patch
maple-tree-add-new-data-structure-fix-2.patch
maple-tree-add-new-data-structure-fix-3.patch
maple-tree-add-new-data-structure-fix-4.patch
maple-tree-add-new-data-structure-fix-5.patch
maple-tree-add-new-data-structure-fix-6.patch
maple-tree-add-new-data-structure-fix-7.patch
maple-tree-add-new-data-structure-fix-8.patch
maple-tree-add-new-data-structure-fix-8-fix.patch
maple-tree-add-new-data-structure-fix-9.patch
maple-tree-add-new-data-structure-fix-10.patch
lib-test_maple_tree-add-testing-for-maple-tree-fix.patch
lib-test_maple_tree-add-testing-for-maple-tree-fix-2.patch
mm-start-tracking-vmas-with-maple-tree-fix.patch
mm-start-tracking-vmas-with-maple-tree-fix-2.patch
damon-convert-__damon_va_three_regions-to-use-the-vma-iterator-fix.patch
mm-mmap-use-advanced-maple-tree-api-for-mmap_region-fix.patch
mm-mmap-use-advanced-maple-tree-api-for-mmap_region-fix-checkpatch-fixes.patch
mm-mmap-use-advanced-maple-tree-api-for-mmap_region-fix-2.patch
mm-mmap-use-advanced-maple-tree-api-for-mmap_region-fix-3.patch
mm-mmap-change-do_brk_munmap-to-use-do_mas_align_munmap-fix.patch
userfaultfd-use-maple-tree-iterator-to-iterate-vmas-fix.patch
nommu-remove-uses-of-vma-linked-list-fix.patch
nommu-remove-uses-of-vma-linked-list-fix-fix.patch
mm-remove-the-vma-linked-list-fix.patch
mm-remove-the-vma-linked-list-fix-fix.patch
mm-remove-the-vma-linked-list-fix-fix-fix.patch
mm-remove-the-vma-linked-list-fix-4.patch

So please send when convenient and I'll check that it matches what I
presently have.
diff mbox series

Patch

diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index f413b6f0da2b..89ff5ef7ee28 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -5670,16 +5670,15 @@  void mas_store_prealloc(struct ma_state *mas, void *entry)
  */
 int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp)
 {
-
 	mas_set_alloc_req(mas, 1 + mas_mt_height(mas) * 3);
 	mas_alloc_nodes(mas, gfp);
-	if (likely(mas->node != MA_ERROR(-ENOMEM)))
+	if (likely(!mas_is_err(mas)))
 		return 0;
 
 	mas_set_alloc_req(mas, 0);
 	mas_destroy(mas);
 	mas->node = MAS_START;
-	return -ENOMEM;
+	return xa_err(mas->node);
 }
 
 /*