On Tue, 2021-07-27 at 21:36 -0400, Steve Dickson wrote: > With recent commits (4f2a5b64,5a53426c) that fixed > compile errors on x86_64 machines, caused similar > errors on i686 machines. > > The variable type that was being used was a time_t, > which changes size between architects, which > caused the compile error. > > Changing the variable to uint64_t fixed the issue. > > Signed-off-by: Steve Dickson <steved@xxxxxxxxxx> > --- > utils/nfsdcltrack/nfsdcltrack.c | 2 +- > utils/nfsdcltrack/sqlite.c | 2 +- > utils/nfsdcltrack/sqlite.h | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c > index 0b37c094..7c1c4bcc 100644 > --- a/utils/nfsdcltrack/nfsdcltrack.c > +++ b/utils/nfsdcltrack/nfsdcltrack.c > @@ -508,7 +508,7 @@ cltrack_gracedone(const char *timestr) > { > int ret; > char *tail; > - time_t gracetime; > + uint64_t gracetime; > Hmm.. time_t is a long: typedef __kernel_long_t __kernel_time_t; ...but the kernel is converting this value from a time64_t which is s64. Should the above be int64_t instead of being unsigned? The kernel should never send down a negative value, but if you're trying to match up types then that might be cleaner. > > ret = sqlite_prepare_dbh(storagedir); > diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c > index cea4a411..cf0c6a45 100644 > --- a/utils/nfsdcltrack/sqlite.c > +++ b/utils/nfsdcltrack/sqlite.c > @@ -540,7 +540,7 @@ out_err: > * remove any client records that were not reclaimed since grace_start. > */ > int > -sqlite_remove_unreclaimed(time_t grace_start) > +sqlite_remove_unreclaimed(uint64_t grace_start) > { > int ret; > char *err = NULL; > diff --git a/utils/nfsdcltrack/sqlite.h b/utils/nfsdcltrack/sqlite.h > index 06e7c044..ba8cdfa8 100644 > --- a/utils/nfsdcltrack/sqlite.h > +++ b/utils/nfsdcltrack/sqlite.h > @@ -26,7 +26,7 @@ int sqlite_insert_client(const unsigned char *clname, const size_t namelen, > int sqlite_remove_client(const unsigned char *clname, const size_t namelen); > int sqlite_check_client(const unsigned char *clname, const size_t namelen, > const bool has_session); > -int sqlite_remove_unreclaimed(const time_t grace_start); > +int sqlite_remove_unreclaimed(const uint64_t grace_start); > int sqlite_query_reclaiming(const time_t grace_start); > > #endif /* _SQLITE_H */ -- Jeff Layton <jlayton@xxxxxxxxxx>