From ba24ef86e7e3a8b9b3b03108c097142e503e1fd6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 7 Oct 2021 22:23:35 +0200 Subject: [PATCH] dirent-util: get rid of stat_mode_to_dirent_type() Apparently glibc already has a helper for this. (Not in the man pages for Linux, but FreeBSD does document these cryptic helpers, and its exported by glibc. That should be good enough for us.) --- src/basic/dirent-util.c | 14 +------------- src/basic/dirent-util.h | 2 -- src/basic/recurse-dir.c | 2 +- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/basic/dirent-util.c b/src/basic/dirent-util.c index a70871b33d..366cc077f3 100644 --- a/src/basic/dirent-util.c +++ b/src/basic/dirent-util.c @@ -7,18 +7,6 @@ #include "path-util.h" #include "string-util.h" -int stat_mode_to_dirent_type(mode_t mode) { - return - S_ISREG(mode) ? DT_REG : - S_ISDIR(mode) ? DT_DIR : - S_ISLNK(mode) ? DT_LNK : - S_ISFIFO(mode) ? DT_FIFO : - S_ISSOCK(mode) ? DT_SOCK : - S_ISCHR(mode) ? DT_CHR : - S_ISBLK(mode) ? DT_BLK : - DT_UNKNOWN; -} - static int dirent_ensure_type(DIR *d, struct dirent *de) { struct stat st; @@ -36,7 +24,7 @@ static int dirent_ensure_type(DIR *d, struct dirent *de) { if (fstatat(dirfd(d), de->d_name, &st, AT_SYMLINK_NOFOLLOW) < 0) return -errno; - de->d_type = stat_mode_to_dirent_type(st.st_mode); + de->d_type = IFTODT(st.st_mode); return 0; } diff --git a/src/basic/dirent-util.h b/src/basic/dirent-util.h index 5bbd54df5a..c7956e7c1b 100644 --- a/src/basic/dirent-util.h +++ b/src/basic/dirent-util.h @@ -8,8 +8,6 @@ #include "macro.h" #include "path-util.h" -int stat_mode_to_dirent_type(mode_t mode); - bool dirent_is_file(const struct dirent *de) _pure_; bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) _pure_; diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c index fe34ffbfd4..2aabbccadb 100644 --- a/src/basic/recurse-dir.c +++ b/src/basic/recurse-dir.c @@ -290,7 +290,7 @@ int recurse_dir( /* Copy over the data we acquired through statx() if we acquired any */ if (sx.stx_mask & STATX_TYPE) { assert(!!subdir == !!S_ISDIR(sx.stx_mode)); - de[i]->d_type = stat_mode_to_dirent_type(sx.stx_mode); + de[i]->d_type = IFTODT(sx.stx_mode); } if (sx.stx_mask & STATX_INO)