device: fix activating master/slave devices during stage2

During stage2, if the slave detected that it would need to wait for
the master, it would return FALSE (which removes the g-idle-handler).

However, it would not clear the activation-source, so later, when
the master becomes ready, its attempt to schedule stage2 again would
result in an error-log and the idle-handler would not be scheduled
again.

Fixes: 85ac903bb8
https://bugzilla.redhat.com/show_bug.cgi?id=1268797
https://bugzilla.redhat.com/show_bug.cgi?id=1183444
This commit is contained in:
Thomas Haller 2015-10-06 10:40:45 +02:00
parent b0ba25cdbc
commit c5210b322d

View file

@ -2989,6 +2989,9 @@ nm_device_activate_stage2_device_config (gpointer user_data)
NMActiveConnection *active = NM_ACTIVE_CONNECTION (priv->act_request);
GSList *iter;
/* Clear the activation source ID now that this stage has run */
activation_source_clear (self, FALSE, 0);
if (!priv->master_ready_handled) {
if (!nm_active_connection_get_master (active))
priv->master_ready_handled = TRUE;
@ -3011,9 +3014,6 @@ nm_device_activate_stage2_device_config (gpointer user_data)
}
}
/* Clear the activation source ID now that this stage has run */
activation_source_clear (self, FALSE, 0);
_LOGD (LOGD_DEVICE, "Activation: Stage 2 of 5 (Device Configure) starting...");
nm_device_state_changed (self, NM_DEVICE_STATE_CONFIG, NM_DEVICE_STATE_REASON_NONE);