mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
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:
parent
294ec5b87a
commit
f559935e7c
4 changed files with 37 additions and 33 deletions
|
@ -166,7 +166,7 @@ static void ip_map_request(struct cache_detail *cd,
|
|||
}
|
||||
|
||||
static struct ip_map *__ip_map_lookup(struct cache_detail *cd, char *class, struct in6_addr *addr);
|
||||
static int __ip_map_update(struct cache_detail *cd, struct ip_map *ipm, struct unix_domain *udom, time_t expiry);
|
||||
static int __ip_map_update(struct cache_detail *cd, struct ip_map *ipm, struct unix_domain *udom, time64_t expiry);
|
||||
|
||||
static int ip_map_parse(struct cache_detail *cd,
|
||||
char *mesg, int mlen)
|
||||
|
@ -187,7 +187,7 @@ static int ip_map_parse(struct cache_detail *cd,
|
|||
|
||||
struct ip_map *ipmp;
|
||||
struct auth_domain *dom;
|
||||
time_t expiry;
|
||||
time64_t expiry;
|
||||
|
||||
if (mesg[mlen-1] != '\n')
|
||||
return -EINVAL;
|
||||
|
@ -308,7 +308,7 @@ static inline struct ip_map *ip_map_lookup(struct net *net, char *class,
|
|||
}
|
||||
|
||||
static int __ip_map_update(struct cache_detail *cd, struct ip_map *ipm,
|
||||
struct unix_domain *udom, time_t expiry)
|
||||
struct unix_domain *udom, time64_t expiry)
|
||||
{
|
||||
struct ip_map ip;
|
||||
struct cache_head *ch;
|
||||
|
@ -328,7 +328,7 @@ static int __ip_map_update(struct cache_detail *cd, struct ip_map *ipm,
|
|||
}
|
||||
|
||||
static inline int ip_map_update(struct net *net, struct ip_map *ipm,
|
||||
struct unix_domain *udom, time_t expiry)
|
||||
struct unix_domain *udom, time64_t expiry)
|
||||
{
|
||||
struct sunrpc_net *sn;
|
||||
|
||||
|
@ -491,7 +491,7 @@ static int unix_gid_parse(struct cache_detail *cd,
|
|||
int rv;
|
||||
int i;
|
||||
int err;
|
||||
time_t expiry;
|
||||
time64_t expiry;
|
||||
struct unix_gid ug, *ugp;
|
||||
|
||||
if (mesg[mlen - 1] != '\n')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue