From 3deb67f50d513a1a74a62e8e248357e844e701a2 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 12 Nov 2013 12:26:13 +0100 Subject: sulogin: use dirent->d_type when scans /dev ... it's more effective than call fstatat() for all device. Signed-off-by: Karel Zak --- login-utils/sulogin-consoles.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'login-utils/sulogin-consoles.c') diff --git a/login-utils/sulogin-consoles.c b/login-utils/sulogin-consoles.c index 07af33a6d..6ceea6ba7 100644 --- a/login-utils/sulogin-consoles.c +++ b/login-utils/sulogin-consoles.c @@ -242,6 +242,11 @@ char* scandev(DIR *dir, dev_t comparedev) while ((dent = readdir(dir))) { char path[PATH_MAX]; struct stat st; + +#ifdef _DIRENT_HAVE_D_TYPE + if (dent->d_type != DT_UNKNOWN && dent->d_type != DT_CHR) + continue; +#endif if (fstatat(fd, dent->d_name, &st, 0) < 0) continue; if (!S_ISCHR(st.st_mode)) -- cgit v1.2.3-55-g7522