OSDN Git Service

nfs: remove timespec from xdr_encode_nfstime
authorArnd Bergmann <arnd@arndb.de>
Mon, 11 Nov 2019 20:16:26 +0000 (21:16 +0100)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 15 Jan 2020 15:54:30 +0000 (10:54 -0500)
For NFSv2 and NFSv3, timestamps are stored using 32-bit entities
and overflow in y2038. For historic reasons we truncate the
64-bit timestamps by converting from a timespec64 to a timespec
first.

Remove this unnecessary conversion step and do the truncation
in the final functions that take a timestamp.

This is transparent to users, but avoids one of the last uses
of 'timespec' and lets us remove it later.

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

index d94c7ab..f6676af 100644 (file)
@@ -360,17 +360,17 @@ static void encode_sattr(struct xdr_stream *xdr, const struct iattr *attr,
        else
                *p++ = cpu_to_be32(NFS2_SATTR_NOT_SET);
 
-       if (attr->ia_valid & ATTR_ATIME_SET) {
+       if (attr->ia_valid & ATTR_ATIME_SET)
                p = xdr_encode_time(p, &attr->ia_atime);
-       } else if (attr->ia_valid & ATTR_ATIME) {
+       else if (attr->ia_valid & ATTR_ATIME)
                p = xdr_encode_current_server_time(p, &attr->ia_atime);
-       else
+       else
                p = xdr_time_not_set(p);
-       if (attr->ia_valid & ATTR_MTIME_SET) {
+       if (attr->ia_valid & ATTR_MTIME_SET)
                xdr_encode_time(p, &attr->ia_mtime);
-       } else if (attr->ia_valid & ATTR_MTIME) {
+       else if (attr->ia_valid & ATTR_MTIME)
                xdr_encode_current_server_time(p, &attr->ia_mtime);
-       else
+       else
                xdr_time_not_set(p);
 }