From: Yu Watanabe Date: Fri, 2 Sep 2022 15:35:34 +0000 (+0900) Subject: sd-device: introduce devname_from_stat_rdev() X-Git-Tag: v252-rc1~271^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=778912a659c0c15f17a7d1f52d4c96ba2f285a8d;p=thirdparty%2Fsystemd.git sd-device: introduce devname_from_stat_rdev() --- diff --git a/src/libsystemd/sd-device/device-util.h b/src/libsystemd/sd-device/device-util.h index b9a29f69248..0561a172ae4 100644 --- a/src/libsystemd/sd-device/device-util.h +++ b/src/libsystemd/sd-device/device-util.h @@ -2,6 +2,7 @@ #pragma once #include +#include #include #include "sd-device.h" @@ -82,4 +83,8 @@ #define log_device_error_errno(device, error, ...) log_device_full_errno(device, LOG_ERR, error, __VA_ARGS__) int devname_from_devnum(mode_t mode, dev_t devnum, char **ret); +static inline int devname_from_stat_rdev(const struct stat *st, char **ret) { + assert(st); + return devname_from_devnum(st->st_mode, st->st_rdev, ret); +} int device_open_from_devnum(mode_t mode, dev_t devnum, int flags, char **ret); diff --git a/src/libsystemd/sd-device/test-sd-device.c b/src/libsystemd/sd-device/test-sd-device.c index 758a2a380d2..0016aa08e74 100644 --- a/src/libsystemd/sd-device/test-sd-device.c +++ b/src/libsystemd/sd-device/test-sd-device.c @@ -514,6 +514,9 @@ static void test_devname_from_devnum_one(const char *path) { assert_se(devname_from_devnum(st.st_mode, st.st_rdev, &resolved) >= 0); assert_se(path_equal(path, resolved)); + resolved = mfree(resolved); + assert_se(devname_from_stat_rdev(&st, &resolved) >= 0); + assert_se(path_equal(path, resolved)); } TEST(devname_from_devnum) {