diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 4c05dd3f7b3..d9ea9852e36 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -1893,10 +1893,11 @@ _public_ int sd_device_get_sysattr_value(sd_device *device, const char *sysattr, return r; path = prefix_roota(syspath, sysattr); - r = lstat(path, &statbuf); - if (r < 0) { + if (lstat(path, &statbuf) < 0) { int k; + r = -errno; + /* remember that we could not access the sysattr */ k = device_cache_sysattr_value(device, sysattr, NULL); if (k < 0)