]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
link-config: default to "keep" policy if naming-scheme<=239 is used
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 16 Jan 2019 13:53:49 +0000 (14:53 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 17 Jan 2019 12:56:02 +0000 (13:56 +0100)
This makes the new (>=240) behaviour conditional, restoring backwards compat, as least
as long as an old naming scheme is used.

src/udev/net/link-config.c
src/udev/net/naming-scheme.h

index dfb00485d12faea602e406ab324c1f4a00bad8a2..eb2477cea418b37c07bcda5d7d3b6a079741cf15 100644 (file)
@@ -14,6 +14,7 @@
 #include "link-config.h"
 #include "log.h"
 #include "missing_network.h"
+#include "naming-scheme.h"
 #include "netlink-util.h"
 #include "network-internal.h"
 #include "parse-util.h"
@@ -399,6 +400,12 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
 
         (void) link_name_type(device, &name_type);
 
+        if (IN_SET(name_type, NET_NAME_USER, NET_NAME_RENAMED)
+            && !naming_scheme_has(NAMING_ALLOW_RERENAMES)) {
+                log_device_debug(device, "Device already has a name given by userspace, not renaming.");
+                goto no_rename;
+        }
+
         if (ctx->enable_name_policy && config->name_policy)
                 for (NamePolicy *p = config->name_policy; !new_name && *p != _NAMEPOLICY_INVALID; p++) {
                         policy = *p;
index c7f9505ab7e9b99ecbeff7e6faac15c986362219..0b3d9bff1d79350ced02a74c39144ffdf3a01f4a 100644 (file)
@@ -26,11 +26,12 @@ typedef enum NamingSchemeFlags {
         NAMING_NPAR_ARI        = 1 << 1, /* Use NPAR "ARI", see 6bc04997b6eab35d1cb9fa73889892702c27be09 */
         NAMING_INFINIBAND      = 1 << 2, /* Use "ib" prefix for infiniband, see 938d30aa98df887797c9e05074a562ddacdcdf5e */
         NAMING_ZERO_ACPI_INDEX = 1 << 3, /* Allow zero acpi_index field, see d81186ef4f6a888a70f20a1e73a812d6acb9e22f */
+        NAMING_ALLOW_RERENAMES = 1 << 4, /* Allow re-renaming of devices, see #9006 */
 
         /* And now the masks that combine the features above */
         NAMING_V238 = 0,
         NAMING_V239 = NAMING_V238 | NAMING_SR_IOV_V | NAMING_NPAR_ARI,
-        NAMING_V240 = NAMING_V239 | NAMING_INFINIBAND | NAMING_ZERO_ACPI_INDEX,
+        NAMING_V240 = NAMING_V239 | NAMING_INFINIBAND | NAMING_ZERO_ACPI_INDEX | NAMING_ALLOW_RERENAMES,
 
         _NAMING_SCHEME_FLAGS_INVALID = -1,
 } NamingSchemeFlags;