From 6e574ebd00c96b2f51fdb5db9fa629b9deb2c309 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 22 Nov 2023 13:05:26 +0900 Subject: [PATCH] sd-device: introduce device_has_db() helper function --- src/libsystemd/sd-device/device-private.c | 13 +++++++++++++ src/libsystemd/sd-device/device-private.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c index 90df3f724d8..cd85ec9c629 100644 --- a/src/libsystemd/sd-device/device-private.c +++ b/src/libsystemd/sd-device/device-private.c @@ -809,6 +809,19 @@ static int device_get_db_path(sd_device *device, char **ret) { return 0; } +int device_has_db(sd_device *device) { + _cleanup_free_ char *path = NULL; + int r; + + assert(device); + + r = device_get_db_path(device, &path); + if (r < 0) + return r; + + return access(path, F_OK) >= 0; +} + int device_update_db(sd_device *device) { _cleanup_(unlink_and_freep) char *path = NULL, *path_tmp = NULL; _cleanup_fclose_ FILE *f = NULL; diff --git a/src/libsystemd/sd-device/device-private.h b/src/libsystemd/sd-device/device-private.h index a0161e7c12a..79a0013dc71 100644 --- a/src/libsystemd/sd-device/device-private.h +++ b/src/libsystemd/sd-device/device-private.h @@ -59,6 +59,7 @@ int device_clone_with_db(sd_device *device, sd_device **ret); int device_tag_index(sd_device *dev, sd_device *dev_old, bool add); bool device_should_have_db(sd_device *device); +int device_has_db(sd_device *device); int device_update_db(sd_device *device); int device_delete_db(sd_device *device); int device_read_db_internal_filename(sd_device *device, const char *filename); /* For fuzzer */ -- 2.47.3