From: Yu Watanabe Date: Sun, 22 Feb 2026 20:26:46 +0000 (+0900) Subject: sd-device: move copy_all_tags() from udev X-Git-Tag: v260-rc1~37^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1c867dc71af12bb7afb1981f83fea14eb4b98993;p=thirdparty%2Fsystemd.git sd-device: move copy_all_tags() from udev No functional change, preparation for the next commit. --- diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c index 3cd3e96d1c8..828697e6176 100644 --- a/src/libsystemd/sd-device/device-private.c +++ b/src/libsystemd/sd-device/device-private.c @@ -693,6 +693,23 @@ int device_clone_with_db(sd_device *device, sd_device **ret) { return 0; } +int device_copy_all_tags(sd_device *dest, sd_device *src) { + int r; + + assert(dest); + + if (!src) + return 0; + + FOREACH_DEVICE_TAG(src, tag) { + r = device_add_tag(dest, tag, /* both= */ false); + if (r < 0) + return r; + } + + return 0; +} + void device_cleanup_tags(sd_device *device) { assert(device); diff --git a/src/libsystemd/sd-device/device-private.h b/src/libsystemd/sd-device/device-private.h index 8f88b38c46c..376a4a479cd 100644 --- a/src/libsystemd/sd-device/device-private.h +++ b/src/libsystemd/sd-device/device-private.h @@ -45,6 +45,7 @@ int device_add_property(sd_device *device, const char *key, const char *value); int device_add_propertyf(sd_device *device, const char *key, const char *format, ...) _printf_(3, 4); int device_add_tag(sd_device *device, const char *tag, bool both); void device_remove_tag(sd_device *device, const char *tag); +int device_copy_all_tags(sd_device *dest, sd_device *src); void device_cleanup_tags(sd_device *device); void device_cleanup_devlinks(sd_device *device); diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index ad7b9fc7761..e09bdd0cfa9 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -329,23 +329,6 @@ static int event_execute_rules_on_remove(UdevEvent *event, UdevRules *rules) { return r; } -static int copy_all_tags(sd_device *d, sd_device *s) { - int r; - - assert(d); - - if (!s) - return 0; - - FOREACH_DEVICE_TAG(s, tag) { - r = device_add_tag(d, tag, false); - if (r < 0) - return r; - } - - return 0; -} - static int update_clone(UdevEvent *event) { sd_device *dev = ASSERT_PTR(ASSERT_PTR(event)->dev_db_clone); int r; @@ -398,7 +381,7 @@ int udev_event_execute_rules(UdevEvent *event, UdevRules *rules) { if (r < 0) return log_device_debug_errno(dev, r, "Failed to clone sd_device object: %m"); - r = copy_all_tags(dev, event->dev_db_clone); + r = device_copy_all_tags(dev, event->dev_db_clone); if (r < 0) log_device_warning_errno(dev, r, "Failed to copy all tags from old database entry, ignoring: %m");