From 9fac506ef7582d246998fdbfc3291dccb6f82e75 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 3 Jan 2019 22:27:37 -0500 Subject: [PATCH] Revert "e4defrag: use 64-bit counters to track # files defragged" 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 --- misc/e4defrag.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/misc/e4defrag.c b/misc/e4defrag.c index fd2b626..9d237da 100644 --- a/misc/e4defrag.c +++ b/misc/e4defrag.c @@ -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; -- 1.8.3.1