summaryrefslogtreecommitdiff
path: root/src/devices/nm-device-team.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/nm-device-team.c')
-rw-r--r--src/devices/nm-device-team.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/devices/nm-device-team.c b/src/devices/nm-device-team.c
index c04b14b40b..29fb881836 100644
--- a/src/devices/nm-device-team.c
+++ b/src/devices/nm-device-team.c
@@ -53,6 +53,8 @@ G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE)
#define NM_TEAM_ERROR (nm_team_error_quark ())
+static gboolean teamd_start (NMDevice *dev, NMSettingTeam *s_team);
+
typedef struct {
#if WITH_TEAMDCTL
struct teamdctl *tdc;
@@ -226,7 +228,8 @@ update_connection (NMDevice *device, NMConnection *connection)
g_object_set (G_OBJECT (s_team), NM_SETTING_TEAM_CONFIG, NULL, NULL);
#if WITH_TEAMDCTL
- if (ensure_teamd_connection (device)) {
+ teamd_start (device, s_team);
+ if (NM_DEVICE_TEAM_GET_PRIVATE (device)->teamd_pid > 0 && ensure_teamd_connection (device)) {
const char *config = NULL;
int err;
@@ -503,9 +506,8 @@ teamd_start (NMDevice *dev, NMSettingTeam *s_team)
#endif
priv->teamd_timeout)
{
- /* FIXME g_assert that this never hits. For now, be more reluctant, and try to recover. */
- g_warn_if_reached ();
- teamd_cleanup (dev, FALSE);
+ /* Just return if teamd_start() was already called */
+ return TRUE;
}
teamd_binary = teamd_paths;