mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 23:09:29 +02:00
maple_tree: clarify comments on mas_nomem()
When an allocation completely fails, the return is false. If the allocation succeeds or partially succeeds, return true to indicate a retry of the operation. Note that since the lock may have been dropped, the operation is retried from the start - including potentially allocating more memory. Link: https://lore.kernel.org/20260821192627.4085470-8-liam@infradead.org Signed-off-by: Liam R. Howlett (Oracle) <liam@infradead.org> Cc: Boqun Feng <boqun.feng@gmail.com> Cc: Breno Leitao <leitao@debian.org> Cc: Chris Mason <clm@meta.com> Cc: Chuck Lever <cel@kernel.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: Joe Perches <joe@perches.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rik van Riel <riel@surriel.com> Cc: Waiman Long <longman@redhat.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
3526e09d8c
commit
7d1e343527
+7
-2
@@ -5677,10 +5677,11 @@ EXPORT_SYMBOL_GPL(mas_erase);
|
||||
|
||||
/**
|
||||
* mas_nomem() - Check if there was an error allocating and do the allocation
|
||||
* if necessary If there are allocations, then free them.
|
||||
* if necessary.
|
||||
*
|
||||
* @mas: The maple state
|
||||
* @gfp: The GFP_FLAGS to use for allocations
|
||||
* Return: true on allocation, false otherwise.
|
||||
* Return: False on no memory. True otherwise (partial success as well)
|
||||
*/
|
||||
bool mas_nomem(struct ma_state *mas, gfp_t gfp)
|
||||
__must_hold(mas->tree->ma_lock)
|
||||
@@ -5696,6 +5697,10 @@ bool mas_nomem(struct ma_state *mas, gfp_t gfp)
|
||||
mas_alloc_nodes(mas, gfp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return false on zero forward progress. Partial allocations are kept
|
||||
* so the retry path will attempt to get the rest.
|
||||
*/
|
||||
if (!mas->sheaf && !mas->alloc)
|
||||
return false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user