migration: set correct list pointer when removing notifier

In migration_remove_notifier(), g_slist_remove() will search for and
potentially remove an entry from the specified list.  The return value
should be used to update the potentially-changed head pointer of the
list that was just searched (migration_state_notifiers[mode]) instead
of the migration blockers list.

Fixes: dc79c7d5e1 ("migration: multi-mode notifier")
Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20251113213545.513453-1-mjrosato@linux.ibm.com
Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
Matthew Rosato 2025-11-13 16:35:45 -05:00 committed by Peter Xu
parent 0b5bf4ea76
commit 911bdd34ca

View file

@ -1693,7 +1693,7 @@ void migration_remove_notifier(NotifierWithReturn *notify)
{ {
if (notify->notify) { if (notify->notify) {
for (MigMode mode = 0; mode < MIG_MODE__MAX; mode++) { for (MigMode mode = 0; mode < MIG_MODE__MAX; mode++) {
migration_blockers[mode] = migration_state_notifiers[mode] =
g_slist_remove(migration_state_notifiers[mode], notify); g_slist_remove(migration_state_notifiers[mode], notify);
} }
notify->notify = NULL; notify->notify = NULL;