nfs: use time64_t internally
The timestamps for the cache are all in boottime seconds, so they don't overflow 32-bit values, but the use of time_t is deprecated because it generally does overflow when used with wall-clock time. There are multiple possible ways of avoiding it: - leave time_t, which is safe here, but forces others to look into this code to determine that it is over and over. - use a more generic type, like 'int' or 'long', which is known to be sufficient here but loses the documentation of referring to timestamps - use ktime_t everywhere, and convert into seconds in the few places where we want realtime-seconds. The conversion is sometimes expensive, but not more so than the conversion we do today. - use time64_t to clarify that this code is safe. Nothing would change for 64-bit architectures, but it is slightly less efficient on 32-bit architectures. Without a clear winner of the three approaches above, this picks the last one, favouring readability over a small performance loss on 32-bit architectures. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -203,7 +203,7 @@ static int rsi_parse(struct cache_detail *cd,
|
||||
char *ep;
|
||||
int len;
|
||||
struct rsi rsii, *rsip = NULL;
|
||||
time_t expiry;
|
||||
time64_t expiry;
|
||||
int status = -EINVAL;
|
||||
|
||||
memset(&rsii, 0, sizeof(rsii));
|
||||
|
Reference in New Issue
Block a user