53 lines
2.2 KiB
Diff
53 lines
2.2 KiB
Diff
|
From 4a9d5b23ab513f0ee0b8f490e522f60d4ef3e4cd Mon Sep 17 00:00:00 2001
|
||
|
From: Beniamino Galvani <bgalvani@redhat.com>
|
||
|
Date: Thu, 4 May 2023 15:11:49 +0200
|
||
|
Subject: [PATCH] team: don't try to connect to teamd in update_connection()
|
||
|
|
||
|
In constructed(), NMDevice starts watching the D-Bus name owner or
|
||
|
monitoring the unix socket, and so it is always aware if teamd is
|
||
|
running. When it is, NMDevice connects to it and initializes
|
||
|
priv->tdc.
|
||
|
|
||
|
It is not useful to try to connect to teamd in update_connection()
|
||
|
because warnings will be generated by NM and by libteam if teamd is
|
||
|
not running. As explained above the connection is always initialized
|
||
|
when teamd is available, and so we can just check priv->tdc.
|
||
|
|
||
|
Fixes: ab586236e36b ('core: implement update_connection() for Team')
|
||
|
|
||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2182029
|
||
|
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1631
|
||
|
(cherry picked from commit 93430627c245a0b33b873edca329fa716ccfb7d6)
|
||
|
(cherry picked from commit b60f0dd0a20db232c7edc01faa4562ce510ed107)
|
||
|
(cherry picked from commit f6f1a44559990765a5cbc940a74f54df5d8a30d0)
|
||
|
---
|
||
|
src/core/devices/team/nm-device-team.c | 9 +--------
|
||
|
1 file changed, 1 insertion(+), 8 deletions(-)
|
||
|
|
||
|
diff --git a/src/core/devices/team/nm-device-team.c b/src/core/devices/team/nm-device-team.c
|
||
|
index b745158ef8..1d2beb5e8a 100644
|
||
|
--- a/src/core/devices/team/nm-device-team.c
|
||
|
+++ b/src/core/devices/team/nm-device-team.c
|
||
|
@@ -228,17 +228,10 @@ update_connection(NMDevice *device, NMConnection *connection)
|
||
|
NMDeviceTeam *self = NM_DEVICE_TEAM(device);
|
||
|
NMSettingTeam *s_team = _nm_connection_ensure_setting(connection, NM_TYPE_SETTING_TEAM);
|
||
|
NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE(self);
|
||
|
- struct teamdctl *tdc = priv->tdc;
|
||
|
|
||
|
/* Read the configuration only if not already set */
|
||
|
- if (!priv->config && ensure_teamd_connection(device))
|
||
|
+ if (!priv->config && priv->tdc) {
|
||
|
teamd_read_config(self);
|
||
|
-
|
||
|
- /* Restore previous tdc state */
|
||
|
- if (priv->tdc && !tdc) {
|
||
|
- teamdctl_disconnect(priv->tdc);
|
||
|
- teamdctl_free(priv->tdc);
|
||
|
- priv->tdc = NULL;
|
||
|
}
|
||
|
|
||
|
g_object_set(G_OBJECT(s_team), NM_SETTING_TEAM_CONFIG, _get_config(self), NULL);
|
||
|
--
|
||
|
2.40.1
|
||
|
|