From: Lennart Poettering Date: Thu, 5 Feb 2026 15:40:57 +0000 (+0100) Subject: dirent-util: use xstatx_full() some more X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c756c69644d1204b99b55ae2e22c407621b1f9a;p=thirdparty%2Fsystemd.git dirent-util: use xstatx_full() some more --- diff --git a/src/basic/dirent-util.c b/src/basic/dirent-util.c index 2d0c10f6fef..a1508747777 100644 --- a/src/basic/dirent-util.c +++ b/src/basic/dirent-util.c @@ -5,10 +5,11 @@ #include "dirent-util.h" #include "path-util.h" +#include "stat-util.h" #include "string-util.h" int dirent_ensure_type(int dir_fd, struct dirent *de) { - struct statx sx; + int r; assert(dir_fd >= 0); assert(de); @@ -22,8 +23,16 @@ int dirent_ensure_type(int dir_fd, struct dirent *de) { } /* Let's ask only for the type, nothing else. */ - if (statx(dir_fd, de->d_name, AT_SYMLINK_NOFOLLOW|AT_NO_AUTOMOUNT, STATX_TYPE, &sx) < 0) - return -errno; + struct statx sx; + r = xstatx_full(dir_fd, + de->d_name, + AT_SYMLINK_NOFOLLOW|AT_NO_AUTOMOUNT, + /* mandatory_mask= */ STATX_TYPE, + /* optional_mask= */ STATX_INO, + /* mandatory_attributes= */ 0, + &sx); + if (r < 0) + return r; assert(FLAGS_SET(sx.stx_mask, STATX_TYPE)); de->d_type = IFTODT(sx.stx_mode);