From: Yu Watanabe Date: Wed, 22 Nov 2023 04:05:26 +0000 (+0900) Subject: sd-device: introduce device_has_db() helper function X-Git-Tag: v256-rc1~1400^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F30596%2Fhead;p=thirdparty%2Fsystemd.git sd-device: introduce device_has_db() helper function --- 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 */