Re: [PATCH 2/5] xfs_repair: make duration take time_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2024-04-16 09:12:30, Darrick J. Wong wrote:
> On Tue, Apr 16, 2024 at 02:34:24PM +0200, Andrey Albershteyn wrote:
> > 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.
> > 
> > Signed-off-by: Andrey Albershteyn <aalbersh@xxxxxxxxxx>
> > ---
> >  repair/progress.c   | 4 ++--
> >  repair/progress.h   | 2 +-
> >  repair/xfs_repair.c | 2 +-
> >  3 files changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/repair/progress.c b/repair/progress.c
> > index f6c4d988444e..c2af1387eb14 100644
> > --- a/repair/progress.c
> > +++ b/repair/progress.c
> > @@ -273,7 +273,7 @@ progress_rpt_thread (void *p)
> >  	_("\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((time_t) ((*msgp->total - sum) * (elapsed)/sum), msgbuf));
> 
> I'm not in love with how this expression mixes uint64_t and time_t, but
> I guess it's all the same now that we forced time_t to 64 bits.
> 
> You might remove the pointless parentheses around elapsed.

sure

> 
> >  		}
> >  
> >  		if (pthread_mutex_unlock(&msgp->mutex) != 0) {
> > @@ -420,7 +420,7 @@ timestamp(int end, int phase, char *buf)
> >  }
> >  
> >  char *
> > -duration(int length, char *buf)
> > +duration(time_t length, char *buf)
> >  {
> >  	int sum;
> >  	int weeks;
> > diff --git a/repair/progress.h b/repair/progress.h
> > index 2c1690db1b17..9575df164aa0 100644
> > --- a/repair/progress.h
> > +++ b/repair/progress.h
> > @@ -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)
> > diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c
> > index ba9d28330d82..78a7205f0054 100644
> > --- a/repair/xfs_repair.c
> > +++ b/repair/xfs_repair.c
> > @@ -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 = (time_t)strtol(optarg, NULL, 0);
> 
> report_interval is declared as an int and this patch doesn't change
> that.  <confused>

ops, yeah, missed that. Will change it to report_interval

> 
> --D
> 
> >  			break;
> >  		case 'e':
> >  			report_corrected = true;
> > -- 
> > 2.42.0
> > 
> > 
> 

-- 
- Andrey





[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux