On Tue, Apr 16, 2024 at 06:31:57PM +0200, Andrey Albershteyn wrote: > On 2024-04-16 09:21:25, Darrick J. Wong wrote: > > On Tue, Apr 16, 2024 at 02:34:27PM +0200, Andrey Albershteyn wrote: > > > Convert howlong argument to a time_t as it's truncated to int, but in > > > practice this is not an issue as duration will never be this big. > > > > > > Signed-off-by: Andrey Albershteyn <aalbersh@xxxxxxxxxx> > > > --- > > > fsr/xfs_fsr.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c > > > index 3077d8f4ef46..07f3c8e23deb 100644 > > > --- a/fsr/xfs_fsr.c > > > +++ b/fsr/xfs_fsr.c > > > @@ -72,7 +72,7 @@ static int packfile(char *fname, char *tname, int fd, > > > static void fsrdir(char *dirname); > > > static int fsrfs(char *mntdir, xfs_ino_t ino, int targetrange); > > > static void initallfs(char *mtab); > > > -static void fsrallfs(char *mtab, int howlong, char *leftofffile); > > > +static void fsrallfs(char *mtab, time_t howlong, char *leftofffile); > > > static void fsrall_cleanup(int timeout); > > > static int getnextents(int); > > > int xfsrtextsize(int fd); > > > @@ -387,7 +387,7 @@ initallfs(char *mtab) > > > } > > > > > > static void > > > -fsrallfs(char *mtab, int howlong, char *leftofffile) > > > +fsrallfs(char *mtab, time_t howlong, char *leftofffile) > > > > Do you have to convert the printf format specifier too? > > is time_t always long? There don't seem to be any guarantees at all. The most portable strategy is to cast the value to an unsigned long long and use %ll[ux]. Awkwardly, time_t seems to get used both for actual timestamps and time deltas. > > > > Also what happens if there's a parsing error and atoi() fails? Right > > now it looks like -t garbage gets you a zero run-time instead of a cli > > parsing complaint? > > I suppose it the same as atoi() returns 0 on garbage <nod> All those cli integer parsing things need better checking, though that's its own cleanup series and not related to this patch. --D > > > > --D > > > > > { > > > int fd; > > > int error; > > > -- > > > 2.42.0 > > > > > > > > > > -- > - Andrey > >