Commit 6430b323 authored by Trond Myklebust's avatar Trond Myklebust

NFSv3: Clean up timespec encode

Simplify the struct iattr timestamp encoding by skipping the step of
an intermediate struct timespec.
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent c9dbfd96
...@@ -456,9 +456,9 @@ static void zero_nfs_fh3(struct nfs_fh *fh) ...@@ -456,9 +456,9 @@ static void zero_nfs_fh3(struct nfs_fh *fh)
* uint32 nseconds; * uint32 nseconds;
* }; * };
*/ */
static __be32 *xdr_encode_nfstime3(__be32 *p, const struct timespec *timep) static __be32 *xdr_encode_nfstime3(__be32 *p, const struct timespec64 *timep)
{ {
*p++ = cpu_to_be32(timep->tv_sec); *p++ = cpu_to_be32((u32)timep->tv_sec);
*p++ = cpu_to_be32(timep->tv_nsec); *p++ = cpu_to_be32(timep->tv_nsec);
return p; return p;
} }
...@@ -533,7 +533,6 @@ static __be32 *xdr_decode_nfstime3(__be32 *p, struct timespec64 *timep) ...@@ -533,7 +533,6 @@ static __be32 *xdr_decode_nfstime3(__be32 *p, struct timespec64 *timep)
static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr, static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
struct user_namespace *userns) struct user_namespace *userns)
{ {
struct timespec ts;
u32 nbytes; u32 nbytes;
__be32 *p; __be32 *p;
...@@ -583,10 +582,8 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr, ...@@ -583,10 +582,8 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
*p++ = xdr_zero; *p++ = xdr_zero;
if (attr->ia_valid & ATTR_ATIME_SET) { if (attr->ia_valid & ATTR_ATIME_SET) {
struct timespec ts;
*p++ = xdr_two; *p++ = xdr_two;
ts = timespec64_to_timespec(attr->ia_atime); p = xdr_encode_nfstime3(p, &attr->ia_atime);
p = xdr_encode_nfstime3(p, &ts);
} else if (attr->ia_valid & ATTR_ATIME) { } else if (attr->ia_valid & ATTR_ATIME) {
*p++ = xdr_one; *p++ = xdr_one;
} else } else
...@@ -594,8 +591,7 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr, ...@@ -594,8 +591,7 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
if (attr->ia_valid & ATTR_MTIME_SET) { if (attr->ia_valid & ATTR_MTIME_SET) {
*p++ = xdr_two; *p++ = xdr_two;
ts = timespec64_to_timespec(attr->ia_mtime); xdr_encode_nfstime3(p, &attr->ia_mtime);
xdr_encode_nfstime3(p, &ts);
} else if (attr->ia_valid & ATTR_MTIME) { } else if (attr->ia_valid & ATTR_MTIME) {
*p = xdr_one; *p = xdr_one;
} else } else
......
...@@ -869,7 +869,7 @@ struct nfs3_sattrargs { ...@@ -869,7 +869,7 @@ struct nfs3_sattrargs {
struct nfs_fh * fh; struct nfs_fh * fh;
struct iattr * sattr; struct iattr * sattr;
unsigned int guard; unsigned int guard;
struct timespec guardtime; struct timespec64 guardtime;
}; };
struct nfs3_diropargs { struct nfs3_diropargs {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment