ntpd: renew cur_time after script run, it can take a while
[oweals/busybox.git] / e2fsprogs / e2fs_lib.c
index 3e8d95687278dff83f2bff88398dd8ed28023ddc..f033a19edd90fa149b2ff510f52e0e405bec1358 100644 (file)
@@ -28,33 +28,20 @@ static void close_silently(int fd)
 
 /* Iterate a function on each entry of a directory */
 int iterate_on_dir(const char *dir_name,
-               int (*func)(const char *, struct dirent *, void *),
-               void * private)
+               int FAST_FUNC (*func)(const char *, struct dirent *, void *),
+               void *private)
 {
        DIR *dir;
-       struct dirent *de, *dep;
-       int max_len, len;
-
-       max_len = PATH_MAX + sizeof(struct dirent);
-       de = xmalloc(max_len+1);
-       memset(de, 0, max_len+1);
+       struct dirent *de;
 
        dir = opendir(dir_name);
        if (dir == NULL) {
-               free(de);
                return -1;
        }
-       while ((dep = readdir(dir))) {
-               len = sizeof(struct dirent);
-               if (len < dep->d_reclen)
-                       len = dep->d_reclen;
-               if (len > max_len)
-                       len = max_len;
-               memcpy(de, dep, len);
+       while ((de = readdir(dir)) != NULL) {
                func(dir_name, de, private);
        }
        closedir(dir);
-       free(de);
        return 0;
 }
 
@@ -66,7 +53,7 @@ int fgetsetversion(const char *name, unsigned long *get_version, unsigned long s
        int fd, r;
        IF_LONG_IS_WIDER(int ver;)
 
-       fd = open(name, O_NONBLOCK);
+       fd = open(name, O_RDONLY | O_NONBLOCK);
        if (fd == -1)
                return -1;
        if (!get_version) {
@@ -108,7 +95,7 @@ int fgetsetflags(const char *name, unsigned long *get_flags, unsigned long set_f
        ) {
                goto notsupp;
        }
-       fd = open(name, O_NONBLOCK); /* neither read nor write asked for */
+       fd = open(name, O_RDONLY | O_NONBLOCK); /* neither read nor write asked for */
        if (fd == -1)
                return -1;