summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libudev/libudev-device.c43
-rw-r--r--src/libudev/libudev-private.h2
-rw-r--r--src/udev/udev-event.c4
3 files changed, 23 insertions, 26 deletions
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index a7647b9d9c..242a0d89b6 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -565,30 +565,27 @@ _public_ const char *udev_device_get_property_value(struct udev_device *udev_dev
return udev_list_entry_get_value(list_entry);
}
-int udev_device_read_db(struct udev_device *udev_device, const char *dbfile)
+int udev_device_read_db(struct udev_device *udev_device)
{
char filename[UTIL_PATH_SIZE];
char line[UTIL_LINE_SIZE];
+ const char *id;
FILE *f;
- /* providing a database file will always force-load it */
- if (dbfile == NULL) {
- const char *id;
+ if (udev_device->db_loaded)
+ return 0;
- if (udev_device->db_loaded)
- return 0;
- udev_device->db_loaded = true;
+ udev_device->db_loaded = true;
- id = udev_device_get_id_filename(udev_device);
- if (id == NULL)
- return -1;
- strscpyl(filename, sizeof(filename), "/run/udev/data/", id, NULL);
- dbfile = filename;
- }
+ id = udev_device_get_id_filename(udev_device);
+ if (id == NULL)
+ return -1;
- f = fopen(dbfile, "re");
+ strscpyl(filename, sizeof(filename), "/run/udev/data/", id, NULL);
+
+ f = fopen(filename, "re");
if (f == NULL)
- return log_debug_errno(errno, "no db file to read %s: %m", dbfile);
+ return log_debug_errno(errno, "no db file to read %s: %m", filename);
/* devices with a database entry are initialized */
udev_device->is_initialized = true;
@@ -1306,7 +1303,7 @@ _public_ struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev
if (udev_device == NULL)
return NULL;
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
return udev_list_get_entry(&udev_device->devlinks_list);
}
@@ -1334,7 +1331,7 @@ _public_ struct udev_list_entry *udev_device_get_properties_list_entry(struct ud
return NULL;
if (!udev_device->info_loaded) {
udev_device_read_uevent_file(udev_device);
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
}
if (!udev_device->devlinks_uptodate) {
char symlinks[UTIL_PATH_SIZE];
@@ -1407,7 +1404,7 @@ _public_ unsigned long long int udev_device_get_usec_since_initialized(struct ud
if (udev_device == NULL)
return 0;
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
if (udev_device->usec_initialized == 0)
return 0;
now_ts = now(CLOCK_MONOTONIC);
@@ -1736,7 +1733,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device)
_public_ int udev_device_get_is_initialized(struct udev_device *udev_device)
{
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
return udev_device->is_initialized;
}
@@ -1796,7 +1793,7 @@ _public_ struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_dev
if (udev_device == NULL)
return NULL;
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
return udev_list_get_entry(&udev_device->tags_list);
}
@@ -1816,7 +1813,7 @@ _public_ int udev_device_has_tag(struct udev_device *udev_device, const char *ta
if (udev_device == NULL)
return false;
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
list_entry = udev_device_get_tags_list_entry(udev_device);
if (udev_list_entry_get_by_name(list_entry, tag) != NULL)
return true;
@@ -1905,7 +1902,7 @@ int udev_device_set_action(struct udev_device *udev_device, const char *action)
int udev_device_get_devlink_priority(struct udev_device *udev_device)
{
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
return udev_device->devlink_priority;
}
@@ -1918,7 +1915,7 @@ int udev_device_set_devlink_priority(struct udev_device *udev_device, int prio)
int udev_device_get_watch_handle(struct udev_device *udev_device)
{
if (!udev_device->info_loaded)
- udev_device_read_db(udev_device, NULL);
+ udev_device_read_db(udev_device);
return udev_device->watch_handle;
}
diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h
index f6b641a326..9153e67cc4 100644
--- a/src/libudev/libudev-private.h
+++ b/src/libudev/libudev-private.h
@@ -48,7 +48,7 @@ void udev_device_cleanup_devlinks_list(struct udev_device *udev_device);
int udev_device_add_property(struct udev_device *udev_device, const char *key, const char *value);
char **udev_device_get_properties_envp(struct udev_device *udev_device);
ssize_t udev_device_get_properties_monitor_buf(struct udev_device *udev_device, const char **buf);
-int udev_device_read_db(struct udev_device *udev_device, const char *dbfile);
+int udev_device_read_db(struct udev_device *udev_device);
int udev_device_read_uevent_file(struct udev_device *udev_device);
int udev_device_set_action(struct udev_device *udev_device, const char *action);
const char *udev_device_get_devpath_old(struct udev_device *udev_device);
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index e5a5175df9..7d0d98ca05 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -793,7 +793,7 @@ void udev_event_execute_rules(struct udev_event *event,
return;
if (streq(udev_device_get_action(dev), "remove")) {
- udev_device_read_db(dev, NULL);
+ udev_device_read_db(dev);
udev_device_delete_db(dev);
udev_device_tag_index(dev, NULL, false);
@@ -810,7 +810,7 @@ void udev_event_execute_rules(struct udev_event *event,
} else {
event->dev_db = udev_device_shallow_clone(dev);
if (event->dev_db != NULL) {
- udev_device_read_db(event->dev_db, NULL);
+ udev_device_read_db(event->dev_db);
udev_device_set_info_loaded(event->dev_db);
/* disable watch during event processing */