mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
mm/damon/core: document damos_commit_dests() failure semantics
Add a kernel-doc-like comment to damos_commit_dests() documenting its allocation failure contract: on -ENOMEM, the destination structure is left in a partially torn-down state that is safe to deallocate via damon_destroy_scheme(), but must not be reused for further commits. This was unclear from the code alone and led to a separate patch [1] attempting to reset nr_dests on failure. Make the intended usage explicit so future readers do not repeat the confusion. Link: https://lkml.kernel.org/r/20260320143648.91673-1-sj@kernel.org Link: https://lore.kernel.org/20260318214939.36100-1-objecting@objecting.org [1] Signed-off-by: Josh Law <objecting@objecting.org> Reviewed-by: SeongJae Park <sj@kernel.org> Signed-off-by: SeongJae Park <sj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
a6a8c087dc
commit
cc4555fc6d
|
|
@ -1060,6 +1060,23 @@ static void damos_set_filters_default_reject(struct damos *s)
|
|||
damos_filters_default_reject(&s->ops_filters);
|
||||
}
|
||||
|
||||
/*
|
||||
* damos_commit_dests() - Copy migration destinations from @src to @dst.
|
||||
* @dst: Destination structure to update.
|
||||
* @src: Source structure to copy from.
|
||||
*
|
||||
* If the number of destinations has changed, the old arrays in @dst are freed
|
||||
* and new ones are allocated. On success, @dst contains a full copy of
|
||||
* @src's arrays and count.
|
||||
*
|
||||
* On allocation failure, @dst is left in a partially torn-down state: its
|
||||
* arrays may be NULL and @nr_dests may not reflect the actual allocation
|
||||
* sizes. The structure remains safe to deallocate via damon_destroy_scheme(),
|
||||
* but callers must not reuse @dst for further commits — it should be
|
||||
* discarded.
|
||||
*
|
||||
* Return: 0 on success, -ENOMEM on allocation failure.
|
||||
*/
|
||||
static int damos_commit_dests(struct damos_migrate_dests *dst,
|
||||
struct damos_migrate_dests *src)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user