summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/fileutils.h15
-rw-r--r--lib/path.c15
-rw-r--r--lib/sysfs.c15
-rw-r--r--misc-utils/lsblk.c19
4 files changed, 16 insertions, 48 deletions
diff --git a/include/fileutils.h b/include/fileutils.h
index 8a7e66261..043f2ca44 100644
--- a/include/fileutils.h
+++ b/include/fileutils.h
@@ -4,6 +4,7 @@
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
+#include <dirent.h>
#include <sys/stat.h>
#include "c.h"
@@ -57,4 +58,18 @@ extern int get_fd_tabsize(void);
extern int mkdir_p(const char *path, mode_t mode);
extern char *stripoff_last_component(char *path);
+/* This is readdir()-like function, but skips "." and ".." directory entries */
+static inline struct dirent *xreaddir(DIR *dp)
+{
+ struct dirent *d;
+
+ while ((d = readdir(dp))) {
+ if (!strcmp(d->d_name, ".") ||
+ !strcmp(d->d_name, ".."))
+ continue;
+ break;
+ }
+ return d;
+}
+
#endif /* UTIL_LINUX_FILEUTILS */
diff --git a/lib/path.c b/lib/path.c
index a9c47f2a1..00152f54c 100644
--- a/lib/path.c
+++ b/lib/path.c
@@ -910,21 +910,6 @@ int ul_path_writef_u64(struct path_cxt *pc, uint64_t num, const char *path, ...)
}
-static struct dirent *xreaddir(DIR *dp)
-{
- struct dirent *d;
-
- while ((d = readdir(dp))) {
- if (!strcmp(d->d_name, ".") ||
- !strcmp(d->d_name, ".."))
- continue;
-
- /* blacklist here? */
- break;
- }
- return d;
-}
-
int ul_path_count_dirents(struct path_cxt *pc, const char *path)
{
DIR *dir;
diff --git a/lib/sysfs.c b/lib/sysfs.c
index 6916c2584..9e336adcf 100644
--- a/lib/sysfs.c
+++ b/lib/sysfs.c
@@ -200,21 +200,6 @@ char *sysfs_blkdev_get_name(struct path_cxt *pc, char *buf, size_t bufsiz)
return buf;
}
-static struct dirent *xreaddir(DIR *dp)
-{
- struct dirent *d;
-
- while ((d = readdir(dp))) {
- if (!strcmp(d->d_name, ".") ||
- !strcmp(d->d_name, ".."))
- continue;
-
- /* blacklist here? */
- break;
- }
- return d;
-}
-
int sysfs_blkdev_is_partition_dirent(DIR *dir, struct dirent *d, const char *parent_name)
{
char path[NAME_MAX + 6 + 1];
diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c
index ad5af4721..915a062ba 100644
--- a/misc-utils/lsblk.c
+++ b/misc-utils/lsblk.c
@@ -49,6 +49,7 @@
#include "sysfs.h"
#include "closestream.h"
#include "optutils.h"
+#include "fileutils.h"
#include "lsblk.h"
@@ -328,24 +329,6 @@ static int is_dm(const char *name)
return strncmp(name, "dm-", 3) ? 0 : 1;
}
-/* This is readdir()-like function, but skips "." and ".." directory entries */
-static struct dirent *xreaddir(DIR *dp)
-{
- struct dirent *d;
-
- assert(dp);
-
- while ((d = readdir(dp))) {
- if (!strcmp(d->d_name, ".") ||
- !strcmp(d->d_name, ".."))
- continue;
-
- /* blacklist here? */
- break;
- }
- return d;
-}
-
/* Returns full pat to the device node (TODO: what about sysfs_blkdev_get_path()) */
static char *get_device_path(struct lsblk_device *dev)
{