diff mbox series

nfsdcltrack: Use uint64_t instead of time_t

Message ID 20210728013608.167759-1-steved@redhat.com (mailing list archive)
State New, archived
Headers show
Series nfsdcltrack: Use uint64_t instead of time_t | expand

Commit Message

Steve Dickson July 28, 2021, 1:36 a.m. UTC
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@redhat.com>
---
 utils/nfsdcltrack/nfsdcltrack.c | 2 +-
 utils/nfsdcltrack/sqlite.c      | 2 +-
 utils/nfsdcltrack/sqlite.h      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Comments

Jeff Layton July 28, 2021, 11:15 a.m. UTC | #1
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@redhat.com>
> ---
>  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 */
Steve Dickson July 28, 2021, 4:46 p.m. UTC | #2
On 7/28/21 7:15 AM, Jeff Layton wrote:
> 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@redhat.com>
>> ---
>>   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.
The patch I took to fix the printfs on  64-bits platforms
used the PRIu64 inttype interface so I was just keeping
things constant by using a uint64_t.

The answer to your question is yes... int64 is all that
is needed... but I don't in really matters...

steved.
> 
>>
>>   	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 */
>
Steve Dickson July 31, 2021, 3:36 p.m. UTC | #3
On 7/27/21 9:36 PM, 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@redhat.com>
Committed....

steved.
> ---
>   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;
>   
>   
>   	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 */
>
diff mbox series

Patch

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;
 
 
 	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 */