diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c index 83c2b1243..dd12da1fb 100644 --- a/lib/device/dev-cache.c +++ b/lib/device/dev-cache.c @@ -939,12 +939,20 @@ static int _insert_udev_dir(struct udev *udev, const char *dir) struct udev_device *device; int r = 1; - if (!(udev_enum = udev_enumerate_new(udev))) - goto bad; + if (!(udev_enum = udev_enumerate_new(udev))) { + log_error("Failed to udev_enumerate_new."); + return 0; + } - if (udev_enumerate_add_match_subsystem(udev_enum, "block") || - udev_enumerate_scan_devices(udev_enum)) - goto bad; + if (udev_enumerate_add_match_subsystem(udev_enum, "block")) { + log_error("Failed to udev_enumerate_add_match_subsystem."); + goto out; + } + + if (udev_enumerate_scan_devices(udev_enum)) { + log_error("Failed to udev_enumerate_scan_devices."); + goto out; + } /* * Report any missing information as "log_very_verbose" only, do not @@ -981,13 +989,10 @@ static int _insert_udev_dir(struct udev *udev, const char *dir) udev_device_unref(device); } +out: udev_enumerate_unref(udev_enum); - return r; -bad: - log_error("Failed to enumerate udev device list."); - udev_enumerate_unref(udev_enum); - return 0; + return r; } static void _insert_dirs(struct dm_list *dirs)