]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: do not ignore critical errors in device_new_from_child()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 30 Mar 2022 19:14:49 +0000 (04:14 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 30 Mar 2022 22:25:24 +0000 (07:25 +0900)
src/libsystemd/sd-device/sd-device.c

index d2fd322e2a14645366ae48d1601255c7a41f6d60..19bf01abc718f1b0df0a5867fbc6fe7aea7b3dff 100644 (file)
@@ -764,12 +764,16 @@ static int device_new_from_child(sd_device **ret, sd_device *child) {
 }
 
 _public_ int sd_device_get_parent(sd_device *child, sd_device **ret) {
+        int r;
+
         assert_return(child, -EINVAL);
 
         if (!child->parent_set) {
-                child->parent_set = true;
+                r = device_new_from_child(&child->parent, child);
+                if (r < 0 && r != -ENODEV)
+                        return r;
 
-                (void) device_new_from_child(&child->parent, child);
+                child->parent_set = true;
         }
 
         if (!child->parent)