diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index e072d976d3..766fadd22c 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -613,38 +613,30 @@ static int enumerator_add_parent_devices( sd_device *device, MatchFlag flags) { - int k, r = 0; + int r; assert(enumerator); assert(device); for (;;) { - k = sd_device_get_parent(device, &device); - if (k == -ENOENT) /* Reached the top? */ - break; - if (k < 0) { - r = k; - break; - } + r = sd_device_get_parent(device, &device); + if (r == -ENOENT) /* Reached the top? */ + return 0; + if (r < 0) + return r; - k = test_matches(enumerator, device, flags); - if (k < 0) { - r = k; - break; - } - if (k == 0) + r = test_matches(enumerator, device, flags); + if (r < 0) + return r; + if (r == 0) continue; - k = device_enumerator_add_device(enumerator, device); - if (k < 0) { - r = k; - break; - } - if (k == 0) /* Exists already? Then no need to go further up. */ - break; + r = device_enumerator_add_device(enumerator, device); + if (r < 0) + return r; + if (r == 0) /* Exists already? Then no need to go further up. */ + return 0; } - - return r; } int device_enumerator_add_parent_devices(sd_device_enumerator *enumerator, sd_device *device) {