]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: move device_rename() from device-private.c
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Jan 2023 06:00:30 +0000 (15:00 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Jan 2023 06:02:55 +0000 (15:02 +0900)
The function is used only by udevd.

src/libsystemd/sd-device/device-private.c
src/libsystemd/sd-device/device-private.h
src/udev/udev-event.c

index 7a5d128cc1c504242af0822c1ae150faa0e46719..182c4d66ff75835bbe505787fe65084c3ae10788 100644 (file)
@@ -618,51 +618,6 @@ int device_get_devlink_priority(sd_device *device, int *ret) {
         return 0;
 }
 
-int device_rename(sd_device *device, const char *name) {
-        _cleanup_free_ char *new_syspath = NULL;
-        const char *s;
-        int r;
-
-        assert(device);
-        assert(name);
-
-        if (!filename_is_valid(name))
-                return -EINVAL;
-
-        r = sd_device_get_syspath(device, &s);
-        if (r < 0)
-                return r;
-
-        r = path_extract_directory(s, &new_syspath);
-        if (r < 0)
-                return r;
-
-        if (!path_extend(&new_syspath, name))
-                return -ENOMEM;
-
-        if (!path_is_safe(new_syspath))
-                return -EINVAL;
-
-        /* At the time this is called, the renamed device may not exist yet. Hence, we cannot validate
-         * the new syspath. */
-        r = device_set_syspath(device, new_syspath, /* verify = */ false);
-        if (r < 0)
-                return r;
-
-        r = sd_device_get_property_value(device, "INTERFACE", &s);
-        if (r == -ENOENT)
-                return 0;
-        if (r < 0)
-                return r;
-
-        /* like DEVPATH_OLD, INTERFACE_OLD is not saved to the db, but only stays around for the current event */
-        r = device_add_property_internal(device, "INTERFACE_OLD", s);
-        if (r < 0)
-                return r;
-
-        return device_add_property_internal(device, "INTERFACE", name);
-}
-
 static int device_shallow_clone(sd_device *device, sd_device **ret) {
         _cleanup_(sd_device_unrefp) sd_device *dest = NULL;
         const char *val = NULL;
index a59f130affc04acb0378fa12d6e896c15fcb8fc7..e57b74ba24496cc49cf02de107ff8119de6b51ab 100644 (file)
@@ -53,7 +53,6 @@ int device_properties_prepare(sd_device *device);
 int device_get_properties_nulstr(sd_device *device, const char **ret_nulstr, size_t *ret_len);
 int device_get_properties_strv(sd_device *device, char ***ret);
 
-int device_rename(sd_device *device, const char *name);
 int device_clone_with_db(sd_device *device, sd_device **ret);
 
 int device_tag_index(sd_device *dev, sd_device *dev_old, bool add);
index ebffdc34307f196c4816d7565e3cbcac49d5953e..e0904145eaaaafe835fe0dff76a91aa41fd03b8e 100644 (file)
@@ -12,6 +12,7 @@
 #include "sd-event.h"
 
 #include "alloc-util.h"
+#include "device-internal.h"
 #include "device-private.h"
 #include "device-util.h"
 #include "fd-util.h"
@@ -859,6 +860,51 @@ int udev_event_spawn(
         return r; /* 0 for success, and positive if the program failed */
 }
 
+static int device_rename(sd_device *device, const char *name) {
+        _cleanup_free_ char *new_syspath = NULL;
+        const char *s;
+        int r;
+
+        assert(device);
+        assert(name);
+
+        if (!filename_is_valid(name))
+                return -EINVAL;
+
+        r = sd_device_get_syspath(device, &s);
+        if (r < 0)
+                return r;
+
+        r = path_extract_directory(s, &new_syspath);
+        if (r < 0)
+                return r;
+
+        if (!path_extend(&new_syspath, name))
+                return -ENOMEM;
+
+        if (!path_is_safe(new_syspath))
+                return -EINVAL;
+
+        /* At the time this is called, the renamed device may not exist yet. Hence, we cannot validate
+         * the new syspath. */
+        r = device_set_syspath(device, new_syspath, /* verify = */ false);
+        if (r < 0)
+                return r;
+
+        r = sd_device_get_property_value(device, "INTERFACE", &s);
+        if (r == -ENOENT)
+                return 0;
+        if (r < 0)
+                return r;
+
+        /* like DEVPATH_OLD, INTERFACE_OLD is not saved to the db, but only stays around for the current event */
+        r = device_add_property_internal(device, "INTERFACE_OLD", s);
+        if (r < 0)
+                return r;
+
+        return device_add_property_internal(device, "INTERFACE", name);
+}
+
 static int rename_netif(UdevEvent *event) {
         const char *oldname;
         sd_device *dev;