OSDN Git Service

nfs: encode nfsv4 timestamps as 64-bit
authorArnd Bergmann <arnd@arndb.de>
Mon, 11 Nov 2019 20:16:27 +0000 (21:16 +0100)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 15 Jan 2020 15:54:30 +0000 (10:54 -0500)
On 32-bit architectures, xdr_encode_nfstime4() needlessly
truncates timestamps to a 32-bit value in the range between
year 1902 and 2038.

Change it to use 'struct timespec64' to allow the entire range
of values supported by the server.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfs4xdr.c

index 728d88b..8de4d25 100644 (file)
@@ -1061,7 +1061,7 @@ static void encode_nfs4_verifier(struct xdr_stream *xdr, const nfs4_verifier *ve
 static __be32 *
 xdr_encode_nfstime4(__be32 *p, const struct timespec64 *t)
 {
-       p = xdr_encode_hyper(p, (__s64)t->tv_sec);
+       p = xdr_encode_hyper(p, t->tv_sec);
        *p++ = cpu_to_be32(t->tv_nsec);
        return p;
 }