From 778912a659c0c15f17a7d1f52d4c96ba2f285a8d Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 3 Sep 2022 00:35:34 +0900 Subject: [PATCH] sd-device: introduce devname_from_stat_rdev() --- src/libsystemd/sd-device/device-util.h | 5 +++++ src/libsystemd/sd-device/test-sd-device.c | 3 +++ 2 files changed, 8 insertions(+) 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) { -- 2.47.3