]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Revert "e4defrag: use 64-bit counters to track # files defragged"
authorTheodore Ts'o <tytso@mit.edu>
Fri, 4 Jan 2019 03:27:37 +0000 (22:27 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 4 Jan 2019 03:27:37 +0000 (22:27 -0500)
This reverts commit 3293ea9ecbe1d622f9cf6c41d705d82fbae6a3e3.

This wasn't really the right fix, since there can't be more than 2**32
files in a file system.  The real issue is when the number of files in
a directory change during the e4defrag run.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/e4defrag.c

index fd2b6268c34bc44003b73323f8d9912eeb3446c3..9d237da24ba2d5f1c610ea589e7bf3f4d8bce1b1 100644 (file)
@@ -169,13 +169,13 @@ static int        block_size;
 static int     extents_before_defrag;
 static int     extents_after_defrag;
 static int     mode_flag;
-static uid_t   current_uid;
-static unsigned long long      defraged_file_count;
-static unsigned long long      frag_files_before_defrag;
-static unsigned long long      frag_files_after_defrag;
-static unsigned long long      regular_count;
-static unsigned long long      succeed_cnt;
-static unsigned long long      total_count;
+static unsigned int    current_uid;
+static unsigned int    defraged_file_count;
+static unsigned int    frag_files_before_defrag;
+static unsigned int    frag_files_after_defrag;
+static unsigned int    regular_count;
+static unsigned int    succeed_cnt;
+static unsigned int    total_count;
 static __u8 log_groups_per_flex;
 static __u32 blocks_per_group;
 static __u32 feature_incompat;
@@ -1912,9 +1912,9 @@ int main(int argc, char *argv[])
                        }
                        /* File tree walk */
                        nftw64(dir_name, file_defrag, FTW_OPEN_FD, flags);
-                       printf("\n\tSuccess:\t\t\t[ %llu/%llu ]\n",
-                              succeed_cnt, total_count);
-                       printf("\tFailure:\t\t\t[ %llu/%llu ]\n",
+                       printf("\n\tSuccess:\t\t\t[ %u/%u ]\n", succeed_cnt,
+                               total_count);
+                       printf("\tFailure:\t\t\t[ %u/%u ]\n",
                                total_count - succeed_cnt, total_count);
                        if (mode_flag & DETAIL) {
                                printf("\tTotal extents:\t\t\t%4d->%d\n",
@@ -1923,10 +1923,12 @@ int main(int argc, char *argv[])
                                printf("\tFragmented percentage:\t\t"
                                        "%3llu%%->%llu%%\n",
                                        !regular_count ? 0 :
-                                       (frag_files_before_defrag * 100) /
+                                       ((unsigned long long)
+                                       frag_files_before_defrag * 100) /
                                        regular_count,
                                        !regular_count ? 0 :
-                                       (frag_files_after_defrag * 100) /
+                                       ((unsigned long long)
+                                       frag_files_after_defrag * 100) /
                                        regular_count);
                        }
                        break;