]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: make duration take time_t
authorAndrey Albershteyn <aalbersh@redhat.com>
Tue, 23 Apr 2024 12:36:15 +0000 (14:36 +0200)
committerCarlos Maiolino <cem@kernel.org>
Tue, 23 Apr 2024 13:02:58 +0000 (15:02 +0200)
In most of the uses of duration() takes time_t instead of int.
Convert the rest to use time_t and make duration() take time_t to
not truncate it to int.

While at it remove unnecessary parentheses around 'elapsed'.

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrey Albershteyn <aalbersh@redhat.com>
repair/globals.c
repair/globals.h
repair/progress.c
repair/progress.h
repair/xfs_repair.c

index a68929bdc01203858522ce446bd87937e8d004f2..24f720c46afb7fb05cf2eaa386e7c6ffb1fc2ad1 100644 (file)
@@ -116,7 +116,7 @@ uint32_t    sb_width;
 struct aglock  *ag_locks;
 struct aglock  rt_lock;
 
-int            report_interval;
+time_t         report_interval;
 uint64_t       *prog_rpt_done;
 
 int            ag_stride;
index a67e384a626e5e62d43b7c2000bb365822ea1fee..b83a8ae65942aca964ff5d0a27081807860eb333 100644 (file)
@@ -160,7 +160,7 @@ struct aglock {
 extern struct aglock   *ag_locks;
 extern struct aglock   rt_lock;
 
-extern int             report_interval;
+extern time_t          report_interval;
 extern uint64_t                *prog_rpt_done;
 
 extern int             ag_stride;
index f6c4d988444eea10ad671d0987af628725aacbf6..2ce36cef0449b7d6182b058ed4b62804a4bbc405 100644 (file)
@@ -265,15 +265,16 @@ progress_rpt_thread (void *p)
                         (current_phase == 7))) {
                        /* for inode phase report % complete */
                        do_log(
-                               _("\t- %02d:%02d:%02d: Phase %d: elapsed time %s - processed %d %s per minute\n"),
+                               _("\t- %02d:%02d:%02d: Phase %d: elapsed time %s - processed %ld %s per minute\n"),
                                tmp->tm_hour, tmp->tm_min, tmp->tm_sec,
                                current_phase, duration(elapsed, msgbuf),
-                               (int) (60*sum/(elapsed)), *msgp->format->type);
+                               60 * sum / elapsed, *msgp->format->type);
                        do_log(
        _("\t- %02d:%02d:%02d: Phase %d: %" PRIu64 "%% done - estimated remaining time %s\n"),
                                tmp->tm_hour, tmp->tm_min, tmp->tm_sec,
                                current_phase, percent,
-                               duration((int) ((*msgp->total - sum) * (elapsed)/sum), msgbuf));
+                               duration((*msgp->total - sum) * elapsed / sum,
+                                       msgbuf));
                }
 
                if (pthread_mutex_unlock(&msgp->mutex) != 0) {
@@ -420,7 +421,7 @@ timestamp(int end, int phase, char *buf)
 }
 
 char *
-duration(int length, char *buf)
+duration(time_t length, char *buf)
 {
        int sum;
        int weeks;
index 2c1690db1b17ac8956afddc895c08f3a0a8bfd23..9575df164aa0bf3886c8db50a3f7bde555dce5b8 100644 (file)
@@ -38,7 +38,7 @@ extern void summary_report(void);
 extern int  set_progress_msg(int report, uint64_t total);
 extern uint64_t print_final_rpt(void);
 extern char *timestamp(int end, int phase, char *buf);
-extern char *duration(int val, char *buf);
+extern char *duration(time_t val, char *buf);
 extern int do_parallel;
 
 #define        PROG_RPT_INC(a,b) if (ag_stride && prog_rpt_done) (a) += (b)
index ba9d28330d82de51678486acc0805c9db39b96df..2ceea87dc57df94cdaae9fb07e4397c6e1791e3b 100644 (file)
@@ -377,7 +377,7 @@ process_args(int argc, char **argv)
                        do_prefetch = 0;
                        break;
                case 't':
-                       report_interval = (int)strtol(optarg, NULL, 0);
+                       report_interval = strtol(optarg, NULL, 0);
                        break;
                case 'e':
                        report_corrected = true;